我执行此命令将所有子文件夹中的指定文件移动到指定目的地,然后删除所有空子文件夹。
将子文件夹中的所有 PDF 文件复制到当前目录
for /f "tokens=*" %d in ('dir *.pdf /b/s') do move /y "%d" .\
然后删除所有空文件夹
for /f "tokens=*" %d in ('dir /ad/b/s ^| sort /R') do rd "%d"
当我将命令复制并粘贴到命令行中时,命令看起来运行良好,但在批处理文件中运行它时却不行。我忘记了什么?我可以在任何情况下信任此命令吗?
答案1
在批处理脚本中使用时for
,需要将 加倍%
。
C:\>对于 /? (...) 要在批处理程序中使用 FOR 命令,请指定%%多变的反而 的%多变的。 变量名区分大小写,因此 %i 不同 来自 %I。 (...)
答案2
从命令行运行此脚本时的工作目录是%主页路径%(或您浏览到的目录),从脚本文件运行它会使用脚本所在的目录作为主路径。所以输出不会相同。