我正在尝试使用 Windows 任务计划程序来自动化 VBScript。但是,我尝试使用
cscript.exe
+ "C:\...\script.vbs"
但它没有运行。我还尝试直接在 CMD 中运行相同的命令(cscript.exe "C:\...\script.vbs"
)并且它有效。
可能是什么问题?
编辑:
我只是尝试将设置从
"Run only when user is logged on"
切换到 "Run whether user is logged on or not"
并且成功了。我想知道是否有一种方法可以让我的任务计划在用户注销时运行。
经过几个小时的研究,Blake Morrison(来自微软)的一个博客出现了;它提到了
如果运行 .vbs / .ps1 脚本,请尝试从 .cmd / .bat 脚本启动它
该博客还解释了很多使用任务计划程序时的规则/技巧。
因此,请创建一个调用 VBScript 的 .cmd/.bat 文件。例如:
cscript.exe YourScript.vbs
将位于您的 .cmd/.bat 脚本中。
编写一个像这样的批处理文件:
echo "Started!" > c:\foldergoeshere\log.txt
cscript.exe "C:\...\script.vbs" > c:\foldergoeshere\log.txt
echo "Stopped!" > c:\foldergoeshere\log.txt
然后安排批处理文件而不是vbs。这将使您能够看到正在发生的事情导致其无法运行。您在控制台 (CMD) 中执行时看到的任何错误都将输出到“Started!”之间的该日志文件中。和“停了!”
有什么麻烦的?我不使用 .cmd/.bat 并且脚本可以工作! (这里是Windows7)
我的 VBS 脚本(作为计划任务)在这 4 个场景中的任何场景下都运行良好:
只是在第一个场景中我遇到了屏幕上闪烁的黑色命令窗口。
动作设置:
或
我的脚本,它只是创建一个文件:
Set objFSO = CreateObject("Scripting.FileSystemObject")
filename = "C:\Temp\" & Hour(Time) & Minute(Time) & Second(Time)
Set objFile = objFSO.CreateTextFile(filename)
格雷格回答了这个问题https://superuser.com/a/816073
基本上你需要创建2个文件夹:
您必须创建一个文件夹(或在 64 位 Windows 上创建两个文件夹):
(32 位,始终)C:\Windows\System3