DOS001 用批處理批量替換文件中的某個字符串(本地單元測試通過,部分功能有待優化,歡迎指正)

腳本用途說明:
把同一目錄下的多個文件中的字符串123替換成字符串abc;
操作步驟:
1.將以下批處理腳本copy到本地任意目錄,新建一個批量替換.bat文件(隨各人喜好定義,文件名不固定);
2.因腳本中目錄已經寫成c:\test,故請在c盤創建一個test目錄,並在該test目錄下創建幾個以t開頭的txt文件,如:test1.txt,test2.txt.test3.txt等(隨各人喜好,文件名、文件個數均不限定),但是創建的txt文件請包涵要替換的字符123;
3.直接點擊運行批量替換.bat文件,然後打開創建的每個txt文件,觀察會發現123都已經被替換成了abc
總結:
請各位多調試幾次,愛動腦動手的小夥伴可以修改一下文件內容以及按照自己的思路嘗試修改一下腳本內容,看看修改後執行的效果如何,這樣的話,會理解的更爲深刻一些
提示:如果是剛開始接觸批處理這塊的小夥伴,本腳本就是一個很好的學習範例,小夥伴們可以從中去擴展其他知識點,加油!

@echo off

rem 進入批處理文件所在的路徑
cd c:\test

echo ***** Replace "123" as "abc" *****
rem 定義要替換的新舊字符串
set strOld=123
set strNew=abc

rem 定義變量修改本地化延期
setlocal enabledelayedexpansion

rem 循環取出要處理的文件名
for /f "tokens=*" %%i in ('dir c:\test\t*.txt /b') do (
    set "var=%%i"
    if not !var!.==. (
rem 單個文件一行行處理,將舊字段替換成新字段
	for /f "tokens=*" %%j in (!var!) do (
	    set "tmp=%%j"
	    if not !tmp!.==. (
	      set "tmp=!tmp:%strOld%=%strNew%!"
          rem 將處理後的每一行記錄追加到temp.txt文件中
	      echo !tmp!>>temp.txt
	    )
	)
    rem 在單個文件的每一行經過替換操作後,將處理後的文本從temp.txt臨時文件剪貼到目標處理文件中(剪貼後臨時文件會自動刪除)
	move temp.txt !var!
    )
)

pause
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章