最近項目上需要獲取文件夾下所有文件信息,因為文件夾是在server上,所以想用批處理bat來獲取該路徑下所有文件信息,然后通過任務計划管理去每天自動運行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
這樣一來就完美解決了此問題,計划任務能被完美執行下來去獲取當前文件夾下所有文件信息。