Windows批處理更改當前工作路徑

2021-08-25 15:26:00 字數 955 閱讀 1482

這幾天由於工作需要在研究批處理新增系統定時任務,由於本人用的是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檔案,我改...