2

我有这个循环的命令行

for /d %f in ("C:\Documents and Settings\Moi\Desktop\New Folder\*") do rmdir %f

它似乎是正确的,但即使使用双引号,它仍然会破坏路径。我试过使用十六进制等效项(0x22),但这也无济于事。还有另一种方法来处理其中有空格的路径吗?

如果我只是尝试

for /d %f in ("C:\Documents and Settings\Moi\Desktop\New Folder\New Folder") do rmdir %f

它保留了整个字符串,但是一旦我添加了通配符,它​​就会破坏路径。总体目标是删除此文件夹中的所有文件夹而不删除文件夹本身。

注意:这些只是尝试解决此问题时的测试文件夹,真正的文件夹可以命名为任何名称。

4

2 回答 2

2

我通常使用旧的 DOS 8 字符路径来解决这个问题

  • “文档和设置”为:“docume~1”
  • “程序文件”是“程序~1”
  • “新文件夹”是newfol~1

如果您在一个文件夹中有多个相似的名称,那么末尾的 ~1 是一个计数器

new folder = newfol~1
new folder2 = newfol~2
new folderhuppla = newfol~3
于 2013-05-08T12:31:39.617 回答
1

双引号 rmdir 参数。在批处理文件中使用时,百分比也会加倍。

for /d %f in ("C:\Documents and Settings\Moi\Desktop\New Folder\*") do rmdir "%f"
于 2013-05-08T12:37:35.267 回答