我正在尝试编写一个每 15 分钟运行一次的批处理脚本,检查目录中的文件数量,如果该数量大于设置限制,则将所有文件移动到另一个目录。我很容易在 bash 脚本中执行此操作,但这是我的第一个批处理脚本。
我将此任务分为几个步骤:
查找目录中的文件数。我设法用这个命令做到了这一点:
目录/b/ad d:\test\test2 | 查找 /v /c "::"
接下来是将此命令的输出分配给某个变量,以便我可以将它与我想要的限制进行比较。这就是问题开始的地方。
回声关闭 设置本地启用扩展 FOR /F "tokens=* USEBACKQ" %%a IN (`dir/b/ad d:\test\test2 ^| find /v /c "::"`) 做(@SET NUMFIL=%%a) 回声 %NUMFIL% 本地端
我得到:“|此时出乎意料”。显然,管道正在阻碍。我发现它是特殊字符,因此必须用插入符号转义。这样做之后,我得到:“命令的语法不正确。” 这是 Windows 服务器 2003。
3.解决这个问题后,我打算插入这样的东西:
IF %%NUMFIL%% > 20
(move "d:\test\test2\ti*" "d:\test\test2\dir\")
这会将所有文件(所有文件都以“ti”开头)移动到所需的目录。
所以我的问题是:如何处理#2 问题,#3 在这种情况下会起作用吗?