当我将其放入我的一台Windows PC的特定文件夹中时,我需要执行批处理文件。
我们在美国有20台个人电脑。我可以远程访问每台PC并在本地PC上执行批处理文件,但这需要很长时间。
我也可以非常快速地将文件传输到每台PC中。如果我将批处理文件放在一个可以解决我问题的特定文件夹中,就可以执行它。
过去我听说过听众。 PC上的“东西”只是查看文件夹的内容。如果文件恰好存在于该文件夹中,则监听器执行“某事”。
这是一些有助于更好理解的伪代码:
\\Program watches the contents of C:\Folder1
If
file batchfile.bat exists in C:\Folder1
then execute batchfile.bat and then delete batchfile.bat
Else
continue watching C:\Folder1 for batchfile.bat
我正在挖掘SO,看起来PowerShell将成为我需要采取的道路。你们是否同意或者是否有更有效的解决方案?
答案 0 :(得分:0)
我很确定powershell不是你想要的。虽然我建议使用powershell代替批量处理有效负载,但它并不适合这些类型的计划任务。
相反,我会推荐两条路径:
答案 1 :(得分:0)
我是这样做的:
param([switch]$install)
$batchfile = "C:\Folder1\batchfile.bat"
if($install)
{
invoke-expression ("schtasks -create -tn `"Job1`" -tr `"powershell -file '" + $myinvocation.mycommand.path + "'`" -sc DAILY -st 05:00 -rl HIGHEST -ru SYSTEM")
}
else
{
if(test-path $batchfile)
{
cmd /c batchfile.bat
remove-item $batchfile | out-null
}
}
使用“-install”开关运行上述脚本,它将创建一个计划任务,每天凌晨5:00运行一次。如果您希望更频繁地运行,请检查schtasks的语法以更改它。