[英]Task that successfully scheduled and ran in Windows 7 could not run in Windows XP
我正在編寫一個將自動安排任務的應用程序。 它應該可以在Windows 7和Windows XP上運行。 不幸的是,我似乎無法在Windows XP上運行它。
在安裝.C文件中,我創建批處理文件並執行它。 在Windows 7版本上,task命令如下所示:
schtasks /create /tn \"<Script Name>\" /xml \"%s\\<Script XML>\"
其中%s是安裝文件(和臨時批處理腳本)的工作目錄。 此方法已在多台Windows 7計算機上進行了測試,並已確認在所有這些計算機上均可正常使用。 之所以決定使用XML文件來創建任務,是因為該任務無法在筆記本電腦上運行,因為默認情況下,自動生成的XML會將腳本設置為“電池不運行”。
但是,當我嘗試在Windows XP上運行相同的應用程序時,出現了無法識別/ xml參數的錯誤,因此我重寫了XP的Task Schedule命令。 我知道該應用程序將在其上運行的XP計算機不是便攜式計算機,因此我認為我不必擔心自動生成的XML的“不用電池運行”部分。
這是Windows XP版本的任務命令:
schtasks /create /tn \"<Script Name>\" /tr \"%s\\<File To Run>.exe\" /sc minute /mo 60
應用程序完成安裝后,我在計划的任務上收到狀態消息“無法運行”。 我知道我正在計划的可執行文件確實可以工作,因為當我手動運行它(在XP和Windows 7上)時,它都可以工作,所以我不知所措,試圖找到解決此問題的方法。
如果重要的話,可執行文件就是一個C#文件。 我記錄了批處理文件和C#可執行文件的操作目錄,它們都是正確的,所以我不確定為什么不能讓此任務在Windows XP上自動運行。
如果有人可以幫助我,我將非常感激。 我已經為這個問題工作了幾天。
沒有XP機器或Windows XP模式,這一切都是黑暗的。
我的主要預測是,我認為您不必轉義/tn \\"<Script Name>\\"
的引號,因為在測試時出現錯誤。 /tr \\"%s\\\\<File To Run>.exe\\"
。 即使其中任何一個包含空格,也應使用常規(未轉義)引號。 我在Windows 7中測試了schtasks /Create /TN \\"name\\" /TR cmd /SC once /ST 12:00
,並且收到錯誤ERROR: The filename, directory name, or volume label syntax is incorrect.
。
另一件事是,您將/SC
設置為minute
,但您也將/MO
設置為60
。 我預測這在Windows 7上還可以,但是這可能會使XP抱怨。 將/SC
設置為HOURLY
可能值得一試(如果XP具有該選項)。
最后要說明的是,通常Windows實用程序在版本之間不會發生很大變化,尤其是如果它們未在幫助文件中顯示其版本時。 自XP以來,除了/XML
選項(以及/V1
)以外,幾乎沒有任何基本的變化。 如果它可以在7中運行,那么它有95%的機會可以在XP中運行,因此您也可以嘗試在其中進行測試。
順便提一下,對於似乎所有應用程序,CMD的轉義字符為^
。 schtasks /Create /TN ^"name^" /TR cmd /SC once /ST 13:00
和schtasks /Create /TN "name" /TR cmd /SC once /ST 13:00
都可以正常工作,盡管它們確實覆蓋了每個其他,只是名稱name
不帶引號(Windows可能會在創建引號之前將其刪除)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.