標籤:
這一問題的原因是在運行批處理時使用了“以管理員權限運行”。如果直接雙擊運行是沒有問題的。
如果我就想用管理員權限運行呢?
出這個錯誤的原因是,以管理員權限運行時的目前的目錄不是批處理所在的目錄了。所以,解決的方法也簡單。只要在批處理的開頭加上下面這句就可以了。
cd /d %~dp0
這句話是什麼意思呢?
%~dp0 “d”為Drive的縮寫,即為磁碟機,磁碟、“p”為Path縮寫,即為路徑,目錄cd是轉到這個目錄,不過我覺得cd /d %~dp0 還好些選項文法: ~0 - 刪除任何引號("),擴充 %0 %~f0 - 將 %0 擴充到一個完全合格的路徑名(“f”是file,即檔案) %~d0 - 僅將 %0 擴充到一個磁碟機代號 %~p0 - 僅將 %0 擴充到一個路徑 %~n0 - 僅將 %0 擴充到一個檔案名稱(“n”是name 檔案名稱) %~x0 - 僅將 %0 擴充到一個副檔名 %~s0 - 擴充的路徑只含有短名(“s”為Short,短的) %~a0 - 將 %0 擴充到檔案的檔案屬性(“a”為attribute,即屬性) %~t0 - 將 %0 擴充到檔案的日期/時間(“t”time) %~z0 - 將 %0 擴充到檔案的大小(Size 大小) %~$PATH:0 - 尋找列在路徑環境變數的目錄,並將 %0 擴充 到找到的第一個完全合格的名稱。如果環境變數名 未被定義,或者沒有找到檔案,此按鍵組合會擴充到 Null 字元串可以組合修飾符來得到多重結果: %~dp0 - 僅將 %0 擴充到一個磁碟機代號和路徑 %~nx0 - 僅將 %0 擴充到一個檔案名稱和副檔名 %~fs0 - 僅將 %0 擴充到一個帶有短名的完整路徑名 %~dp$PATH:0 - 尋找列在路徑環境變數的目錄,並將 %I 擴充 到找到的第一個磁碟機代號和路徑。 %~ftza0 - 將 %0 擴充到類似輸出線路的 DIR%0為當前批次檔如果0換成1為第一個檔案,2為第2個
在Win8中用批處理建立Oracle資料庫時報“Unable to open file”