在命令提示符下使用powerschell命令运行schtasks.exe

时间:2018-07-06 16:42:19

标签: powershell batch-file

我希望有人可以帮助我。我是这个主题的新手,所以希望有人能帮助我。 我想使用 Powershell -Command start-process 以管理员身份运行 schtasks.exe 来创建任务。 这是到目前为止我的蝙蝠文件的代码。

 set mydir=%~dp0
 set mydir2=%mydir%prim.exe
 set mys='`"C:\workspace\prim.exe`"'
 Powershell -Command "&{Start-Process -FilePath schtasks -ArgumentList '/Create', '/SC ONLOGON', '/TN CoUpdater', '/IT', '/RL HIGHEST', '/TR', '\"%mydir2%\"' -verb RunAs}"

首先,我设置了要运行的程序的路径。问题是我的路径名包含一些空格。因此,经过一些研究,我能够得出结论:路径在任务sheduler中,但没有引号(/ TR后面的参数):

enter image description here

所以我接下来要做的是在字符串中添加引号并将其作为/ TR之后的参数

set mys='`"C:\workspace\prim.exe`"'

其结果是: enter image description here

但是现在我不知道该如何在引号中添加引号。我希望任何人都可以帮助我解决这个问题。谢谢!

2 个答案:

答案 0 :(得分:0)

不必使用呼叫运算符,这是一种可行的方法:

SET "PRIM=""%~dp0prim.exe"""
powershell -Command "Start-Process -FilePath schtasks -ArgumentList '/Create','/SC','ONLOGON','/TN','CoUpdater','/IT','/RL','HIGHEST','/TR','%PRIM%' -Verb runas"

请注意,我将引号嵌入到环境变量中。只要有匹配的引号集,cmd解析器就不会抱怨。

答案 1 :(得分:0)

通过尝试和错误,我找到了解决方法:

set mys='`\"C:\works pace\prim.exe`\"'
Powershell -Command "Start-Process -FilePath schtasks -ArgumentList '/Create', '/SC ONLOGON', '/TN CoUpdater', '/IT', '/RL HIGHEST', '/TR', \"%mys%\" -verb RunAs"

这对我有用,并且在任务计划程序中正确显示: https://www.facebook.com/help/contact/919889051467941