2013-06-24 86 views

回答

4

問題是,當以管理員身份運行時,當前工作目錄更改爲C:\ Windows \ System32。我的解決方案是明確地將caller.bat中的當前工作目錄更改爲與運行該文件的目錄相同。這是通過提取從%0參數驅動器和路徑如下所示進行:

cd /D %~dp0 
call callee.bat 
pause 

的/ d參數CD引起的目錄以及改變路徑並需要處理的情況下調用者.bat文件不在C:驅動器上。

此處瞭解詳情:Hidden features of Windows batch files

+0

同意或直接使用'call%〜dp0callee.bat'來避免留下管理工作目錄。 _(我的意思是目錄,而不是特權)_。 – gmo

+0

好想法gmo - 儘管在我的情況下,我希望它的工作方式與雙擊運行它一樣,這意味着它必須在同一個目錄中運行。 –

0

另一種解決方案是增加了您的腳本保存到您的路徑系統環境變量的目錄。您可以通過Windows提供的高級系統設置(在開始菜單中鍵入環境變量,您應該看到該選項),或者可以以管理員身份運行cmd會話並輸入: setx path%path%; 「您的腳本目錄」/ M

/M使系統範圍擴大,而不僅僅是您的用戶(這是需要管理員)。只有在路徑中有空格時才需要雙引號。路徑變量包含由分號分隔的路徑列表。以上只是將新條目附加到現有列表中。向列表中添加一個條目允許您在不指定路徑的情況下從該目錄執行程序。

最後,如果這並不在它自己的工作,你可能還需要添加.CMD和/或.bat您PATHEXT變量: SETX PATHEXT%PATHEXT%;. CMD; .BAT/M

要檢查變量的當前值,請設置var_name ie: set pathext

相關問題