如何通过 bat 文件删除远程目录树?

如何通过 bat 文件删除远程目录树?

我看到了这个问题“如何在 Windows 7 上通过控制台删除目录树?“想做同样的事情,但有以下例外:

  • 该目录存在于外部驱动器上。
  • 目录路径的字符串中有一个空格。
  • 我绝对希望在批处理文件中使用它,而不是在命令行中。

所以对我来说,我正在处理:

del /s /f /q p:\group_share\my share\*.*
for /f %%f in ('dir /ad /b p:\group_share\my share\') do rd /s /q p:\group_share\my share\%f

显然我可以将其放在变量中:

set FULL_PATH="p:\group_share\my share\"

然后:

del /s /f /q %FULL_PATH%*.*
for /f %%f in ('dir /ad /b %FULL_PATH%') do rd /s /q %FULL_PATH%%f

我尝试在 %FULL_PATH% 周围添加引号:“%FULL_PATH”......但我得到了这个:

The system cannot find the file specified.

顺便说一下,如果我输入:p:\group_share\my share\ 并用引号括起来,第一行就会起作用:

 del /s /f /q "p:\group_share\my share\"*.*

有人能给我一些建议或尝试吗?我尝试过各种引号排列、不使用引号等。谢谢 Geo

答案1

你似乎把它变得不必要地复杂化了——你所需要的只是:-

pushd %FULL_PATH%
rd /s /q .
popd

通过移动到目标目录,您可以防止my share被删除。请注意cdpushd不需要引号,因为它们只接受一个参数。

相关内容