簡體   English   中英

從命令提示符使用 PowerShell 命令運行 schtasks.exe

[英]Run schtasks.exe with PowerShell command from command prompt

我想使用PowerShell -CommandStart-Process以管理員身份運行schtasks.exe來創建任務。 這是我目前得到的.bat文件的代碼。

 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}"

首先,我設置了我要運行的程序的路徑。 問題是我的路徑名包含一些空格。 經過一些研究,我能夠確定路徑在任務調度程序中但沒有引號( /TR 之后的參數):

任務調度器 1

我做的下一件事是在字符串中添加引號並將其作為參數放在 /TR 之后

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

這導致: 任務調度器 2

但是現在我不知道應該如何將引號添加到我的路徑名中。 我希望任何人都可以幫助我解決這個問題。 謝謝!

不需要使用呼叫運算符,這是一種應該起作用的方法:

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

注意我將引號嵌入到環境變量中。 只要有匹配的引號集,cmd 解析器就不會抱怨。

通過嘗試和錯誤,我找到了一個解決方案:

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"

這對我有用,並且在任務計划程序中正確顯示: 在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM