【问题标题】:Delete all folders except.... (*.BAT)删除除.... (*.BAT) 以外的所有文件夹
【发布时间】:2014-01-10 15:48:32
【问题描述】:

我想删除在父目录中找到的除 MYFOLDER 之外的所有文件夹,但我无法完成?

for %%i in ("C:\Parent") do if not "%%i"=="MYFOLDER" del /f /q "%%i

有人可以检查代码吗?

(我正在使用 *.bat)

【问题讨论】:

标签: batch-file delete-directory


【解决方案1】:

这应该对你有帮助:

for /d %%i in ("C:\Parent\*") do if /i not "%%~nxi"=="MYFOLDER" del /s /q "%%i"

【讨论】:

  • 你能解释一下%%~nxi 代表什么吗?它对我不起作用,但 %%i 可以。
  • 我猜是文件夹。
【解决方案2】:

或者只是将 MYFOLDER 复制到临时文件夹,删除所有文件,然后复制回 MYFOLDER。除非 MYFOLDER 很大并且需要时间来复制,否则它应该同样有效。

【讨论】:

    【解决方案3】:

    Dir所有文件夹,如果不是MYFOLDER,则一一检查,如果不是-删除。 运行实际作业时请删除echo

    for /d %%i in (C:\Parent\*) do (
        if /i "%%i" NEQ ".exe" echo rd /S /Q %%i
    )
    

    【讨论】:

    • 请注意,如果您只使用for /d 而不是使用for /f 迭代dir 输出,那么您会省去很多痛苦。
    • 是的,抱歉,应该是 /F。
    猜你喜欢
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 2012-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-14
    • 1970-01-01
    相关资源
    最近更新 更多