Par*_*dox 18 batch-file forfiles
我正在研究一个批处理脚本,它允许我使用forfiles删除早于设定期间的文件.目前,我的目标是打印将被删除的文件.
我正在使用的forfiles调用从cmd.exe shell中完美运行,但是只要我将它嵌入到批处理脚本中,就会barfs.我怀疑这是因为@字符未被正确转义,但我不确定.
我正在运行的命令是:
forfiles /S /P "r:\" /m *.bak /d -10 /c "cmd /c echo @PATH"
Run Code Online (Sandbox Code Playgroud)
并导致以下错误:
ERROR: Invalid argument/option - '@PATH'
Type "FORFILES /?" for usage.
Run Code Online (Sandbox Code Playgroud)
我已经搜索了整个地方并尝试了一些不同的方案来转义@PATH组件.从@@ PATH到\"@ PATH \"的所有内容都没有结果.
任何帮助,将不胜感激!
小智 40
在我删除目录路径周围的引号之前,我遇到了同样的问题,如下所示:
forfiles /S /P r:\ /m *.bak /d -10 /c "cmd /c echo @PATH"
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.
这是一个老问题,但我有一个不同的答案......以防万一有人需要它。
使用“forfiles”时,路径(写在 /p 之后)可以位于引号之间。但是,它不能以斜杠结尾。
如果您想对驱动器的根目录运行“forfiles”:
forfiles /p "C:" /c "cmd /c echo @file"
如果您想处理不同目录中的文件...
forfiles /p "C:\Program Files" /c "cmd /c echo @file"
换句话说,最安全的做法是:
forfiles /p "C:\Path\Without\Trailing\Slash"