将所有子文件夹中的所有指定文件移动到指定目标

将所有子文件夹中的所有指定文件移动到指定目标

我执行此命令将所有子文件夹中的指定文件移动到指定目的地,然后删除所有空子文件夹。

将子文件夹中的所有 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

从命令行运行此脚本时的工作目录是%主页路径%(或您浏览到的目录),从脚本文件运行它会使用脚本所在的目录作为主路径。所以输出不会相同。

相关内容