這幾天由於工作需要在研究批處理新增系統定時任務,由於本人用的是win7系統,由工作路徑產生了一些問題,不知道xp是不是也有這個問題,首先,來做個試驗。
在我的d盤test目錄下有兩個檔案,乙個test.txt,乙個test.bat,如下圖所示:
test.bat內容如下:
@echo off color 0a echo %cd% notepad test.txt
目的很簡單,就是想通過批處理test.bat開啟test.txt檔案。
1、直接雙擊test.bat,一切正常,test.txt如我所願被開啟了,並且輸出了當前工作路徑d:/test。
2、右擊test.bat,選擇以「管理員身份執行」,這時現象出來了,螢幕輸出當前工作路徑是c:/windows/system32,也就是cmd.exe的路徑,並用test.txt也沒有被開啟。
好,問題出來了,就是當前工作路徑在作怪。
要解決這個問題,首先要獲取當前test.bat的路徑,**如下:
set base_dir=%~dp0 %base_dir:~0,2%
這時,%base_dir%已經儲存了當前test.bat的絕對路徑了,接下來就是要將執行時的當前工作路徑更換為%base_dir%就行了,**如下:
pushd %base_dir% notepad test.txt popd
這樣修改之後test.bat的總體**如下:
@echo off color 0a set base_dir=%~dp0 %base_dir:~0,2% pushd %base_dir% notepad test.txt popd pause
修改之後,無論是雙擊直接執行,還是右擊選擇「以管理員身份執行」,結果都會是一樣的。
系統定時任務在執行批處理檔案時,當前的工作路徑都會是c:/windows/system32,因此,都得用這種方法改變一下當前工作路徑。
自己功力不夠,各位有什麼更好的招術不妨交流一下,^_^。
Windows批處理更改當前工作路徑
這幾天由於工作需要在研究批處理新增系統定時任務,由於本人用的是win7系統,由工作路徑產生了一些問題,不知道xp是不是也有這個問題,首先,來做個試驗。在我的d盤test目錄下有兩個檔案,乙個test.txt,乙個test.bat,如下圖所示 test.bat內容如下 echo off color 0...
erlang shell 更改當前工作路徑
對於剛接觸erlang的人來說,編譯erlang模組時可能會發生如下的錯誤 1 c tut tut.erl none no such file or directory error錯誤原因是在當前工作路徑下沒找到 tut.erl 檔案。那麼如何修改erlang當前工作路徑?有以下兩種方法 第一種,在...
linux系統更改當前主機名
問題描述 centos系統,預設的主機名為localhost.localdomain,剛開始安裝的時候會提示修改,但是有時候會忽略,那安裝好後怎麼修改呢?解決方法 1.以根使用者登入,輸入hostname命令,可以看出當前系統的主機名 2.更改 etc sysconfig下的network檔案,我改...