任務計劃無法正常運行批處理文件的解決方法

網絡環境:windows2003+windows2008.

描述:在win2003內使用映射驅動器Z:映射win2008的一個目錄,

在win2003中創建bat 文件copy Z:中的文件,並做任務計劃bat定時執行.

命令行直接執行bat沒有問題,執行任務計劃失敗.

最終的解決方法是參考下面的文章,在bat文件中添加:

NET USE Z: \\XXX.XXX.XXX.XXX\D$\XXXX "Password" /User:"Administrator"

----

另:win7下映射驅動器Z:,添加任務計劃執行bat文件 Copy Z:\...沒問題,

不存在需要手工添加命令net use的bug.

重啓Win7後,任務計劃消失,但其他程序創建的任務計劃存在,

最後通過排除法檢查發現是由於360軟件作怪!需要把bat 文件和job文件同時都加入白名單.

----------------------------------------------------------------



任務計劃無法正常運行批處理文件的幾種解決方法

Windows 任務計劃與 BAT 批處理文件都是我們經常使用的工具,一個可以幫助我們定期執行計劃的任務、
一個可以幫助我們一次執行一系列預先編好的命令。在 Windows 系統的維護工作中,我們經常需要將任務
計劃與批處理配合起來使用,即通過設置任務計劃定期執行批處理文件定義的一系列命令與操作。

有時候,我們可能會遇到任務計劃與批處理無法正常協同工作的情況。例如,一個同樣的批處理文件,我們
可能手動運行它時一切正常(說明批處理文件的內容沒有錯誤),但將這個批處理文件添加爲任務計劃後卻
無法按照預期運行。筆者在微軟中文論壇收集了幾種解決任務計劃與批處理無法協同工作的方法,希望可以
幫助大家在遇到類似問題時參考。

1. 在任務計劃中正確設置執行批處理的用戶身份與權限。

當我們在任務計劃中添加新任務時,其中有一個步驟是指定運行此任務的用戶帳戶,並需要輸入用戶帳戶的
密碼進行確認。如果任務計劃設置的用戶帳戶身份或權限,與我們手動運行批處理文件時的用戶帳戶不同,
就可能會出現以任務計劃方式運行批處理的結果與手動運行同樣的批處理時結果不同的現象。

例如,假設一個批處理涉及的命令需要管理員權限或者特定用戶帳戶的配置文件纔可以正常運行,如果執行
此批處理的任務計劃被指定爲一個非管理員帳戶或不具備相應用戶配置的用戶帳戶,那麼此批處理很可能在
以任務計劃的方式運行時無法得到其預期的效果。因此,當我們在添加任務計劃並希望以另一個用戶帳戶的
身份與權限運行批處理時,一定要在添加新任務嚮導中檢查運行批處理的用戶帳戶身份與權限是否滿足運行
此批處理的要求。

2. 通過快捷方式爲批處理指定起始位置。

有些批處理文件需要我們爲其設置好特定的“起始位置”纔可以正常運行,否則可能會遇到批處理無法找到
指定路徑的錯誤。當我們手動執行批處理時,無論是在資源管理器中用鼠標雙擊運行批處理,還是首先打開
命令提示符窗口、然後再在命令提示符中執行批處理,資源管理器當前打開的文件夾位置與命令提示符當前
所在的提示符位置都已經自動爲我們設置好了執行批處理時的起始位置。然而,當我們以任務計劃方式執行
批處理時,任務計劃卻無法自動指定執行批處理時所需的起始位置,這樣也可能會造成以任務計劃方式執行
批處理時無法得到預期的效果。

爲了解決這一問題,我們可以首先爲批處理文件建立一個快捷方式,然後修改快捷方式的屬性,在“常規”
選項卡中設置正確的“起始位置”,接下來我們再添加任務計劃,將新任務指定爲這個快捷方式文件而不是
批處理本身。這樣,任務計劃會在任務指定的時間自動執行指向批處理的快捷方式,對應的批處理在運行時
就具有正確的起始位置了。

3. 儘量避免在批處理內容中出現過多的引號。

如果在批處理文件的內容裏出現了過多的引號,即批處理中有一條或多條命令及參數被引號擴起來,這不僅
可能在編寫批處理命令時容易出錯,而且可能會造成特定版本 Windows 的任務計劃無法正確識別批處理中
包含的命令。特別是在一個父級引號中還有子級的引號時,尤其容易出現此類問題。

根據微軟知識庫 KB951246 提供的信息,這個問題主要存在於 Windows Vista/Server 2008 系統。
 
4. 將批處理文件轉換爲可執行文件或腳本後再添加任務計劃。
 
有時當任務計劃無法正確執行批處理文件的部分內容時,我們還可以嘗試將批處理轉換爲其它格式的可執行
文件或腳本,然後再添加至任務計劃。轉換格式雖然執行的命令與任務不變,但將批處理轉換爲可執行文件
或腳本可以改變任務運行的順序與方式,有時說不定可以解決問題。
 
批處理常見的格式轉換包括將 .BAT 文件轉換爲 .EXE 或 .COM 可執行文件,或者轉換爲 .VBS 腳本,這類
轉換可以通過 BAT2EXE、BAT2COM、BAT to EXE Converter、批處理加密轉換器等第三方軟件實現。

5. 在批處理中添加爲正常運行後續命令所需的先決命令。

如果我們遇到了一些比較極端的批處理與任務計劃無法協同工作的問題,無論怎樣在任務計劃的運行環境中
設置都不能解決,那麼可以考慮將一些正確完成批處理命令所需的先決命令添加在原批處理內容的最前面,
在批處理自身的層面加以解決。
 
例如,筆者最近在微軟中文論壇見到一則問題:有位用戶編寫了一個備份開發代碼的批處理,並將其添加爲
任務計劃,希望在每天凌晨時自動運行。但是,這個批處理涉及的文件備份與複製操作需要訪問 $IPC 網絡
映射地址。經測試,用戶編寫的批處理內容沒有問題,如果手動運行批處理,可以正確地訪問目標地址並且
完成備份;但如果將此批處理添加爲任務計劃就無法正確執行備份與複製操作。設置任務計劃的用戶權限、
設置起始位置、對批處理進行格式轉換等方法均無法解決。最終解決這個問題的方法是在批處理內容的前面
添加了一條:

NET USE Z:\\XXX.XXX.XXX.XXX\D$ "Password" /User:"Administrator"

將批處理正常訪問映射地址的先決命令寫在原批處理文件內容的前面,最終這個批處理文件就可以通過任務
計劃方式正常運行了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章