遞歸地對目錄中的所有文件做同一操作 | DOS腳本

問題來源

曾經(jīng)有一個(gè)師弟幫我做了一個(gè)簡單的加密程序,是一個(gè)BAT文件,也就是下面代碼中引用的CC.bat?,F(xiàn)在,我想把D:\test目錄下所有的文件,包括多級嵌套子目錄的文件,都用這個(gè)程序來進(jìn)行一次處理。該怎么做呢?


V1版本

源代碼

set work_path=D:\test
D:
cd %work_path%
for /R %%s in (*) do (
echo %%s
call D:\BAT\CC.bat %%s
)
cd D:\BAT
pause

使用方法

  1. 在文本編輯器中輸入上述代碼,然后將文件保存為.bat文件,比如,try.bat。
  2. 在cmd窗口中輸入,try.bat即可執(zhí)行。

測試結(jié)果

  • WinXP
    部分可用,對于較長串的文件名有Bug

TODO

將上例中的work_path改為命令行參數(shù)形式


V2版本

考慮到大家已經(jīng)不喜歡cmd窗口了,我決心把上面的腳本改造成為一個(gè)可在窗口中雙擊啟動(dòng)的版本。

源代碼

for /R %%s in (*) do (
echo %%s
call D:\\CC.bat %%s  
)
pause
備注

至于為什么要將CC.bat放在一個(gè)絕對路徑下面,是因?yàn)?code>CC.bat本身的原因,不能與 try.bat放在同一個(gè)目錄下。

使用方法

  1. 在文本編輯器中輸入上述代碼,然后將文件保存為.bat文件,比如,try.bat。
  2. try.bat拷貝到你想要操作的那個(gè)文件夾。
  3. 雙擊try.bat即可對當(dāng)前目錄及其子目錄中的所有文件做同一操作。

測試結(jié)果

  • WinXP
    部分可用,對于較長串的文件名有Bug

TODO

不知道DOS腳本是否支持正則表達(dá)式,應(yīng)該借助正則表達(dá)式將這個(gè)腳本更新為只對某些類型的文件做操作。


靈感來源

感想

天下代碼一大抄,為我所用即為高,:)


后續(xù)

今天(2021年10月29日),又碰到這個(gè)知識點(diǎn)哦,看我如何把某個(gè)文件夾里所有子文件夾、子子文件夾中的PDF文件全部到當(dāng)前目錄下?。?!

源代碼

for /R %%s in (*.pdf) do (
copy %%s .
)
pause
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容