1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Deleting

Discussion in 'Support' started by Phileosophos, Feb 15, 2012.

  1. Phileosophos

    Joined:
    Aug 28, 2008
    Messages:
    86
    Likes Received:
    2
    I have a "prune" alias that's defined as follows:

    prune=del /e /s /t /x /y /z /r /nnt

    It's deleting significantly more than I expect as shown in the following output log. I had a few directories named "OptiTemp0", "OptiTemp1", and so forth, which I expected to delete with a simple "prune optitemp*" command. Look what I got instead:

    C:\Users\JWILLI~1\AppData\Local\Temp> prune optitemp*
    Removing C:\Users\JWILLI~1\AppData\Local\Temp\1jf3d0vi.rk5\
    Removing C:\Users\JWILLI~1\AppData\Local\Temp\Adobe\Acrobat\10.0\
    Removing C:\Users\JWILLI~1\AppData\Local\Temp\Adobe\Acrobat\
    Removing C:\Users\JWILLI~1\AppData\Local\Temp\Adobe\
    Removing C:\Users\JWILLI~1\AppData\Local\Temp\Microsoft Visual C++ 2010 x64 Redistributable Setup_10.0.30319\
    Removing C:\Users\JWILLI~1\AppData\Local\Temp\Microsoft Visual C++ 2010 x86 Redistributable Setup_10.0.30319\
    Removing C:\Users\JWILLI~1\AppData\Local\Temp\msohtmlclip\
    Removing C:\Users\JWILLI~1\AppData\Local\Temp\msohtmlclip1\02\
    Removing C:\Users\JWILLI~1\AppData\Local\Temp\OneNoteAttachments\
    Removing C:\Users\JWILLI~1\AppData\Local\Temp\OneNoteRuntimeCache\14.0\OneNoteRuntimeCache_Files\
    Removing C:\Users\JWILLI~1\AppData\Local\Temp\OptiTemp0\
    Removing C:\Users\JWILLI~1\AppData\Local\Temp\OptiTemp1\
    Removing C:\Users\JWILLI~1\AppData\Local\Temp\OptiTemp2\
    Removing C:\Users\JWILLI~1\AppData\Local\Temp\VBE\
    Removing C:\Users\JWILLI~1\AppData\Local\Temp\WPDNSE\
    Removing C:\Users\JWILLI~1\AppData\Local\Temp\{1212D1F7-FFD5-4527-9D15-5B95142CD8CB}\
    Removing C:\Users\JWILLI~1\AppData\Local\Temp\{40e9b1be-6b6d-4b04-884e-4cbb42134bbd}\
    0 files deleted 4,096 bytes freed

    I do not understand why it didn't delete the folder named "OptiTemp3", though it did delete the other three you see in the output. Nor do I understand why it did delete all kinds of folders that clearly don't match the pattern I specified.

    Am I missing the obvious or is this thing not working properly? Thanks!
     
  2. Charles Dye

    Charles Dye Super Moderator
    Staff Member

    Joined:
    May 20, 2008
    Messages:
    3,307
    Likes Received:
    39
    Remember that the wildcard is matching the names of files to delete, not directories to search into....
     
  3. Phileosophos

    Joined:
    Aug 28, 2008
    Messages:
    86
    Likes Received:
    2
    Now that makes sense. I guess I was thinking that the delete command would match the names of directories too. Is there any sort of deletion command that matches against both file and folder names? I'll go looking through the help to see what I can find now that you've acquainted me with that distinction. Thanks!
     
  4. vefatica

    Joined:
    May 20, 2008
    Messages:
    7,959
    Likes Received:
    30
    Way off topic ... I had complained about HTLM not rendering in Agent when I read emails from the forums. Nearly all the time they won't size horizontally properly (I get horizontal scroll bars). This post, by Phileosophos, is an exception; it sizes perfectly to fit in my usual Agent pane. What's the difference?

     
  5. JohnQSmith

    Joined:
    Jan 19, 2011
    Messages:
    559
    Likes Received:
    7
    It's not in a CODE or HTML bracket; it's just formatted text. In a CODE or HTML bracket there is no wordwrap, whereas in formatted text it can still wordwrap.
     
  6. Charles G

    Joined:
    Apr 2, 2011
    Messages:
    1,022
    Likes Received:
    0
    Why not something of the form:

    for /a:d /h %fldr in ("optitemp*")prune "%fldr"
     
  7. Phileosophos

    Joined:
    Aug 28, 2008
    Messages:
    86
    Likes Received:
    2
    Thanks for the suggestion, Charles G. I have tried to operate with a simple, single alias to blow away files or folders based on a given spec. I thought that's what the del command did, but apparently I don't understand it correctly. The interesting thing is that using "del /e /s x optitemp*" deletes exactly the directories I expect and only the directories I expect, nothing else. I don't understand why adding the other arguments makes it ignore directories and go after files only, but maybe I will as I keep reading and re-reading the help.
     
  8. Charles G

    Joined:
    Apr 2, 2011
    Messages:
    1,022
    Likes Received:
    0
    Would you call the <whatever the answer is> the same way and expect it to remove either files andf/or folders? If you wanted to remove entire folders based on a specific parameter you could define:

    PruneDirs=if "%1" NE "" for /a:d /h %fldr in ("%1")prune "%fldr"

    PruneFilles=IN "%1" del /a:-d /s "%2"

    IN=pushd %@full[%1] ^ pushd %@left[2,%@full[%1]] ^ %2& ^ popd ^ popd
     
  9. Phileosophos

    Joined:
    Aug 28, 2008
    Messages:
    86
    Likes Received:
    2
    Yeah, the point of my alias was so I didn't have to worry about whether I was working with files or folders. I could simply call "prune abc*" and be certain that all files that matched and all folders that matched were gone. Perhaps that's an unrealistic expectation on my part, but the help for the del command made it sound like I could pass file names or folder names without much concern.
     
  10. Charles G

    Joined:
    Apr 2, 2011
    Messages:
    1,022
    Likes Received:
    0
    Prompt> PruneBoth optitemp*

    If you want it to remove both folders matching "optitemp*" as well files in the current folder matching the same "optitemp*" then you can combine the two aliases I said above - like this:

    NOTE: CommandSeperator is ^

    PruneBoth=@iif( "%1" NE "" ( for /a:d /h %fldr in ("%1")prune "%fldr" ^ del /a:-d /s "%1" ),ECHOERR PruneBoth: Nothing passed, nothing done.)
     

Share This Page