【问题标题】:Forfile command to delete all except a directoryforfile 命令删除除目录之外的所有内容
【发布时间】:2015-04-30 20:01:06
【问题描述】:

我想使用forfile 命令删除某些目录中的所有.frm 文件。但是,我不想删除特定目录下的 *.frm 文件。

我有这个,但我不知道如何将目录的名称放在我不想删除文件的位置:

forfiles /p D:\myfolder\ /s /m *.frm /c "cmd /c IF NOT DESIRE_DIR del @PATH"

请帮忙!

【问题讨论】:

    标签: batch-file command-line cmd


    【解决方案1】:
    @for /f "delims=" %A in ('dir /ad /b^|findstr /l /v /i "Dirname1 Dirname2"') do @echo %A
    

    这也比forfiles 快很多。 Forfiles 仅在按日期列出文件时才真正有用。

    将您的文件夹名称放入Dirname1Dirname2 以排除它们。空格表示或。

    记住在批处理文件中%A 变为%%A

    forfiles /p D:\myfolder\ /s /d -7 /m *.frm /c "cmd /c echo @path >> %temp%\temp.txt"
    for /f "delims=" %A in ('findstr /i /v "list of excluded directories" ^< "%temp%\temp.txt"') do echo %A
    

    您的/m 也放错了位置,您会看到一条消息告诉您。

    【讨论】:

    • 嗯,这是一个很好的答案,但我忘了说,我使用了带有日期的forfiles 命令:/d -7 我的意思是:forfiles /p D:\myfolder\ /s /m /d -7 *.frm /c "cmd /c IF NOT DESIRE_DIR del @PATH" 删除那些超过 7 天的文件。
    猜你喜欢
    • 1970-01-01
    • 2011-05-06
    • 2016-10-09
    • 2011-07-19
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多