我当前正在编写一个批处理文件(第一次这样做),以远程调用我们网络(所有嵌入式XP)中的计算机,并安排在11:00 PM(23:00)进行碎片整理。

当然,这并没有按计划进行,这是可以理解的。但是,我想获取通常在命令提示符下给出的日志记录信息,例如“磁盘已-%碎片整理”或错误等。进行该调用的当前行的状态是这样的:

@FOR /F "Tokens=1" %%a IN (%List%) DO at \\%%a 23:00 defrag C: /A > C:\...\log.txt


注意:在C:\和\ defraglog.txt之间的省略号实际上输入了完整的路径名。对于上下文,%List%是IP地址列表。

但是,碎片整理甚至不会启动。根据我正在测试的远程计算机,命令如下所示:

defrag C: /A and C:\...\log.txt


当我查看计划任务时。

现在,当我简单地使用:

@FOR /F "Tokens=1" %%a IN (%List%) DO at \\%%a 23:00 defrag C:


我确实在远程计算机上的11:00 PM进行了碎片整理,所以我认为问题出在重定向的方式上。

任何帮助将不胜感激!

最佳答案

我会尝试添加引号:

@FOR /F "Tokens=1" %%a IN (%List%) DO at \\%%a 23:00 defrag C: /A > %APPDATA%\log.txt


如果这不起作用,请在包含以下内容的网络共享上制作一个批处理文件defragXP.cmd:

@echo off
defrag C: /A > C:\...\log.txt


然后安排批处理:

@FOR /F "Tokens=1" %%a IN (%List%) DO at \\%%a 23:00 \\server\batches\defragXP.cmd

10-08 17:10