1. 程式人生 > 程式設計 >Windows批處理更改當前工作路徑的BAT

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

獲取資料夾下所有檔案資訊並儲存到當前目錄下test.txt中的cmd命令:

dir /s /b *.* > test.txt

儲存為test.bat檔案,然後雙擊test.bat後就會在該資料夾目錄下生產test.txt,裡面會包含所有檔案的路徑資訊。
開啟任務計劃程式中,建立新的基本任務,安裝步驟建立並把啟動程式設定成test.bat
右鍵點選該任務執行,看是否能成功執行test.bat
此處就出現問題了:顯示該計劃任務已經執行完成,但是你會發現在剛剛資料夾的路徑下並沒有生成test.txt這個檔案。
然後嘗試修改test.txt的路徑資訊,用絕對路徑,然後再次執行計劃任務

dir /s /b *.* > D:\test\test.txt

依然有問題:雖然test.txt檔案確實生成了,但是裡面的檔案資訊並不是當前資料夾下的,而是windows\system32下的檔案資訊,比如:C:\WINDOWS\system32\0409等等
問題點在於當前工作路徑,系統計劃任務時候預設的當前工作路徑是C:\WINDOWS\system32,所以顯示的是C:\WINDOWS\system32下面的檔案資訊
修改當前工作路徑:在bat檔案中加入一行,先把bat所在的目錄設定成當前工作路徑

cd /d %~dp0
dir /s /b *.* > test.txt 

這樣一來就完美解決了此問題,計劃任務能被完美執行下來去獲取當前資料夾下所有檔案資訊。

如何使用批處理檔案更改當前工作目錄

I need some help in writing a batch file. I have a path stored in a variable root as follows:

set root=D:\Work\Root

Then I am changing my working directory to this root as follows:

cd %root%

When I execute this batch file from anywhere on the D drive this is done successfully. But when I execute the same batch file from some other drive,cd %root% doesn't work.

Is there a way I can get the drive letter from the root variable? I can then change the current directory to this drive first and then cd %root% shall work.