【问题标题】:Batch command to delete all subfolders with specific name having special character批处理命令删除具有特殊字符的特定名称的所有子文件夹
【发布时间】:2018-04-10 13:21:54
【问题描述】:

我有一个这样的目录:

D:\DATA\DATA2\Demo&_1\Demo\1\deployment
D:\DATA\DATA2\Demo&_1\Demo\2\deployment
D:\DATA\DATA2\Demo&_1\Demo\3\deployment

我正在运行以下批处理文件命令来删除 Demo 文件夹中存在的所有部署文件夹:

cd /d D:\DATA\DATA2\Demo&_1\Demo
FOR /d /r . %%d IN (deployment) DO @IF EXIST "%%d" rd /s /q "%%d"

当我在文件夹名称(Demo&_1)中有特殊字符时,上述命令不起作用(不删除部署文件夹),当我没有特殊字符时,它正在工作(删除部署文件夹)。

例如如果我将文件夹“Demo&_1”的名称更改为“Demo1”,上面的批处理文件可以正常工作,但如果有特殊字符则不能工作。

【问题讨论】:

  • 为什么不简单地做for /D /R "D:\DATA\DATA2\Demo&_1\Demo" %%d IN (deployment) DO @IF EXIST "%%d" rd /s /q "%%d" 如果这样可以,我会发布答案。
  • 你是对的。谢谢你的帮忙。如果你把它作为答案,我会接受它
  • 很高兴它有帮助,答案已发布。

标签: batch-file cmd


【解决方案1】:

仅仅是因为路径不在引号中,但无论如何这里是一个更简单的解决方案,而无需执行cd /d

for /D /R "D:\DATA\DATA2\Demo&_1\Demo" %%d IN (deployment) DO @IF EXIST "%%d" rd /s /q "%%d"

【讨论】:

    猜你喜欢
    • 2014-10-22
    • 2013-03-12
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 2021-06-06
    • 2014-04-26
    • 1970-01-01
    • 2018-06-21
    相关资源
    最近更新 更多