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.