Windows 从CMD运行时,schtasks命令有效,但从VBScript运行时无效
我在VBScript中有以下代码:Windows 从CMD运行时,schtasks命令有效,但从VBScript运行时无效,windows,vbscript,cmd,Windows,Vbscript,Cmd,我在VBScript中有以下代码: Set oShell=CreateObject(“WScript.Shell”) 暗条纹 strArgs=“SchTasks/Create/SC MONTHLY/D 8/TN”“RespaldoBD”“/TR”'C:\Python27\pythonw.exe%USERPROFILE%\Desktop\respaldsbd.py'/ST 16:33” 奥谢尔,快跑,0,错 这将在Windows中的任务计划程序中创建任务 运行VBScript时,不会创建任务,但
Set oShell=CreateObject(“WScript.Shell”)
暗条纹
strArgs=“SchTasks/Create/SC MONTHLY/D 8/TN”“RespaldoBD”“/TR”'C:\Python27\pythonw.exe%USERPROFILE%\Desktop\respaldsbd.py'/ST 16:33”
奥谢尔,快跑,0,错
这将在Windows中的任务计划程序中创建任务
运行VBScript时,不会创建任务,但在CMD中运行命令时,任务会起作用:
SchTasks /Create /SC MONTHLY /D 8 /TN ""RespaldoBD"" /TR "'C:\Python27\pythonw.exe %USERPROFILE%\Desktop\RespaldosBD.py'" /ST 16:33
我不明白发生了什么。VBScript字符串以双引号开头和结尾。字符串中的任何嵌套双引号必须通过将其加倍来转义 您可以这样定义
strArgs
:
strArgs = "SchTasks /Create ... /TR "'C:\Python27\pythonw.exe %USERPROFILE%\Desktop\RespaldosBD.py'" /ST 16:33"
' ^ ^^
' | |`- comment begins here
' string begins here string ends here
基本上是运行命令
SchTasks /Create /SC MONTHLY /D 8 /TN "RespaldoBD" /TR
当然,这是失败的
通常会出现语法错误,但嵌套命令周围使用的单引号会将行的其余部分转换为注释,因此该语句在语法上是正确的,但在语义上是错误的
此外,单引号不应该放在第一位。它们将整个Python命令行定义为程序,而该程序应该只是Python可执行文件。脚本的路径应该是一个参数
更改此项:
strArgs = "SchTasks /Create /SC MONTHLY /D 8 /TN ""RespaldoBD"" /TR "'C:\Python27\pythonw.exe %USERPROFILE%\Desktop\RespaldosBD.py'" /ST 16:33"
为此:
strArgs = "SchTasks /Create /SC MONTHLY /D 8 /TN ""RespaldoBD"" /TR ""C:\Python27\pythonw.exe %USERPROFILE%\Desktop\RespaldosBD.py"" /ST 16:33"
VBScript和计划任务都可以运行。您只能在具有管理员权限的情况下运行SchTasks.exe,如从提升的命令提示符运行。您必须通过UAC同意对话框。因此,您的.vbs脚本不起作用的最基本原因是它没有运行。@HansPassant不,这不是问题所在<代码>schtasks在用户级任务的用户帐户中工作正常。