我可以运行此命令行来删除单个远程服务器上的任务:
SCHTASKS / delete / tn“testTask”/ s(主机名),它完美无缺。
但是,我需要能够从一个命令行或批处理文件在多个服务器上执行相同的操作。我已经尝试使用for循环选项来运行文本文件中提供的服务器列表,似乎它不读取该文本文件。这是一个例子:
For /F %f in (c:\temp\testservers.txt) do schtasks /delete /tn "testTask"
它输出此错误:系统中不存在指定的任务名称“testTask”..它似乎在我的笔记本电脑上搜索任务而不是在.txt文件中提供的远程服务器上。 (远程服务器上存在任务)
我使用相同的For循环命令在多个服务器上创建具有不同参数的任务,并且工作正常。任何帮助将不胜感激。如果您需要任何澄清,请告诉我。
答案 0 :(得分:0)
我认为您只是忘记在删除命令后添加%f参数,该命令不使用与创建命令相同的参数,如this MSDN page中所述:
schtasks /delete /tn {<TaskName> | *} [/f] [/s <Computer> [/u [<Domain>\]<User> [/p <Password>]]]
所以你应该尝试:
For /F %f in (c:\temp\testservers.txt) do schtasks /delete /tn "testTask" /s %f
要将结果记录在文件中,请使用以下内容:
For /F %f in (c:\temp\testservers.txt) do schtasks /delete /tn "testTask" /s %f >> C:\Mylogs\TaskDeletions.log