2012-06-13 58 views
0

我需要創建一個批量文件來檢測它所在的驅動器和目錄。當我正常運行文件時,它已經位於正確的目錄/驅動器中。但是當它以管理員身份運行時,它將在system32中啓動。是否有命令進入目錄或驅動批次來自哪裏?進行批量檢測自己的文件路徑

回答

4

你可以使用

Pushd "%~dp0" 

這改變了當前目錄到批處理文件的路徑。
引用參數可以避免路徑名中的特殊字符,比如「C:\ Documents &設置」

+0

希望我可以兩次上癮。一次提供有關'%〜dp0'的正確答案,另一個提示'pushd'。這是一個非常不充分的命令,我總是覺得在自動化批處理中使用'cd'只是錯誤的:-) – Joey

+0

謝謝,但這是一個非常簡單的答案。但是你是對的,這是一個未被充分利用的命令,即使在我使用的'cd' – jeb

+0

我自己的腳本中,我嘗試寫批處理(至少在成功的情況下)調用環境並不重要,並且將被恢復,就像批處理未執行。這意味着'setlocal'和'pushd'非常方便。可能只是我的一個習慣,儘管;) – Joey

0

一個解決方法是使用\之前的路徑給絕對路徑。

所以,如果你需要運行一個文件c:\temp\xyz.exe,即使你是在目錄c:\winodws\system32還是當你做cd \temp\xyz.exe還是該文件將正常運行