2013-02-25 94 views
0

我創建了一個調用批處理文件的vbs文件,該文件在手動運行時可以完美地工作。 但是,當我從計劃任務運行相同的vbs腳本時,vbs完成時沒有錯誤,但似乎批處理文件未被調用,因爲沒有完成它所負責的taks。在Windows 2008R2中使用任務計劃程序運行時,不從VBS文件中調用批處理文件

我確定計劃任務在我的管理員帳戶下運行。我有相當多的舊服務器上運行此相同TAKS的經驗,但我最近從2003年

這裏遷移到新的2008 R2是不執行該行:

wshell.run "%comspec% /c ""C:\My Scripts\ForAdministration\AddSitesScripts\AddSite.bat"" " & DomainName & " " & WebsiteID & " " & DomainName20 & " " & Path & " " & HasStats & " " & NewAppPool & " " & 1 & " " & 1 & " " & 1, 0, True 

我將所有的變量記錄到一個文本文件中,他們都很好。正如我所說,手動觸發時運行良好。

感謝您的幫助!

回答

0

您的2008 R2機器是64位系統,%comspec%指定了CMD.exe的64位版本。 最有可能你想使用CMD.exe的32位版本(是的,有兩個!)。 將%comspec%更改爲

%SystemRoot%\sysWOW64\cmd.exe 

是的......沒錯! sysWOW64中的CMD.exe是32位版本!

+0

謝謝。我的環境變量顯示以下Comspec,C:\ Windows \ system32 \ cmd.exe。如果版本不正確,我不會得到手動運行的相同結果嗎?我感謝你的洞察力。 – 2013-02-26 06:54:10

0

可能在計劃任務中作爲其他用戶運行。

確認用戶具有必要的權限。

確認問題不是由於假定的當前目錄造成的。

將下面的語句作爲bat文件的第一行,並嘗試運行兩種方式(手動和計劃):

echo.CD=%cd% & pause 

注意的是,當前目錄得到改變當你以管理員身份運行「。您可以通過在程序頂部添加以下行來解決該問題(在引用任何文件/文件夾之前設置所需的CD)。

pushd %~dp0 
+0

我很欣賞反饋,但由於我指定了文件的直接路徑,應該不夠嗎? – 2013-02-28 23:34:59

相關問題