批處理命令(獲得文件名)


  最近接到一個任務,有很多圖像文件(JPG格式)存放在某一路徑下的很多子文件夾中,現在需要把它們的名字打印到一個txt中。

  最開始想到的是,從DOS進入到每個子文件夾中,使用命令:dir /b >info.txt, 將該子文件夾下的所有圖像名字打印到info.txt中,但是子文件夾的個數太多,得不停的回退到上一目錄,又進入下一目錄,真是太麻煩,於是想有沒有更簡單的方法。

  在網上搜到批處理的for命令可以解決這一問題,在當前路徑中新建一個txt文件,輸入如下命令:

  for /r E:/2003/04 %%i in (*.jpg) do echo %%i >> 2003_04.txt

  pause

  把后綴改成.bat運行即可。

  說明:1)/r 可以遞歸的搜索當前路徑或指定路徑下的所有文件名;

  2)E:/2003/04 即為當前路徑,如果不寫的話是指.bat所在路徑,存放圖像的子文件夾都位於這一路徑中;

  3)%%i 為搜索到的文件名,i是變量名,當然也可以是n或者其他(在DOS窗口中輸入時只需要一個%),(*.jpg)指明了要搜索的文件類型;

  4)do 之后是接下來要進行的處理命令;

  5)echo %%i >> 2003_04.txt 表示將搜索到的文件名追加打印到2003_04.txt中, 如果僅有一個>,則后一個打印結果會覆蓋前一個,如果沒有>>2003_04.txt則將所有文件名打印到DOS窗口中;

  6)pause 會在DOS窗口中打印“按任意鍵繼續...”,否則窗口就會一閃而過;

  當然,打印出的文件名是帶路徑的,接下來將“*\”替換為空即可(這里先復制到excel進行替換,txt里好像還替換不了)。

 

  PS:1)這里只是就事論事的記錄了一下解決我的問題的過程,更多更詳細的批處理命令及用法還請參見專業教程。

  2)其實是一個很簡單的問題,高手會比我的方法更簡單快速。解決這個問題讓我感觸的是,不應該墨守常規,要不斷追求新方法,以使我們的工作更高效。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM