1樓:匿名使用者
你太想當然了。批處理最不擅長的就是進行字串處理。建議你還是學乙個sed或者gawk之類的專門用來處理字串的工具的用法。
需要學正規表示式,太麻煩,平常用不到,好不容易學會了,幾天就忘了。
2樓:匿名使用者
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in (1.txt) do (
for %%j in (%%i) do (set /a #%%j+=1))
(for /f "delims=#=" %%i in ('set #^|findstr /v =1') do if not "%%i"=="" set /p s=%%i 2.txt
start 2.txt
如果只顯示不需要輸出到txt,如下
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in (1.txt) do (
for %%j in (%%i) do (set /a #%%j+=1))
for /f "delims=#=" %%i in ('set #^|findstr /v =1') do if not "%%i"=="" set /p s=%%i pause 批處理比對多文字檔案的 找出相同內容另存為乙個文字 3樓:匿名使用者 @echo off set "bf=1.txt" (for /f "usebackq tokens=1-2*" %%a in ("%bf%") do ( findstr /r "%%b\>" "d:\新建資料夾\*.txt" >>>result. txtpause 將要用於查詢的檔案(1.txt)和批處理放在一起,也可設定1.txt路徑. 將1.txt和要查詢的檔案分開存放,這樣**執行更有效率.下面的**可以直接將批處理和要查詢的檔案放在一起使用. set "bf=1.txt" (for /f "usebackq tokens=1-2*" %%a in ("%bf%") do (set n= for /f "delims=" %%i in ('dir /a-d/b *.txt^|findstr /vr "%bf%\>"') do ( findstr /r "%%b\>" "%%i" >nul&&(set /a n+=1)) if !n! gtr 0 (if %%b gtr 500000 (echo +%%b) else echo -%%b)))>>result.txt pause 4樓:匿名使用者 批處理可能難以實現,建議匯入excel用函式處理。如果這類工作固定模式頻繁重複,找人寫個小程式,或在acess中處理。 用批處理 查詢txt檔案內的字元並統計出現的次數 5樓: 不清楚你的實際檔案/情況,僅以問題中的樣例/說明為據;以下**複製貼上到記事本,另存為xx.bat,編碼選ansi,跟要處理的檔案放一起雙擊執行 /*&cls&echo off rem 統計乙個指定字串在乙個txt文字檔案裡出現的次數 title %#% +%$%%$%/%@% %z% cd /d "%~dp0" set "txtfile=a.txt" set "findword=指定字串" if not exist "%txtfile%" (echo;"%txtfile%" 未找到&pause&exit) type "%txtfile%"|cscript -nologo -e:jscript "%~f0" "%findword%" echo;%#% +%$%%$%/%@% %z% pause exit */var text=wsh.stdin.readall(); var str=wsh.arguments(0); var index=0,count=0; while((index=text.indexof(str, index)) != -1) wsh.echo(count); 6樓:匿名使用者 將a檔案拖放到批處理的上方放開執行,**如下: if %1=="" (echo 請拖放文字到批處理圖示&pause&exit) else ( set/p #=輸入要查詢的字元:) set/pstr=<%1 for %%1 in (!str!)do if "%%1"=="!#!" set/a .+=1 echo !#!出現了!.!次 pause 7樓: 推薦用軟體replace pioneer來做,很簡單,詳細步驟: 1. 開啟tools->pattern counter選單2. 選中file/http選項,並在右邊選擇待處理檔名3. 選中word行,按detail按鈕,即得出各詞的統計: number word **********== 4 44 3 33 1 55 **********== 如想自己統計特定的字串,可以按以下步驟: 4. 點選clear按鈕 5. 點選add按鈕,在name輸入33,在pattern=>下面輸入\b33\b點選ok 6. 重複第4步,在name輸入55,在pattern下面輸入\b55\b點選ok 7. 點選count即可得出33和55的出現次數 echo off 下一行指定行數 hn 和刪除幾字元 sn 如刪行尾寫成負數set a hn 7,sn 3 if sn lss 0 set sn sn for i in txt do echo i for f tokens 1 delims j in findstr n i do if j equ ... 如果有特殊字元!會出錯啊。說明 setd d 是吧替換成了兩個空格,你可以改成沒有空格。儲存為bat檔案。在txt檔案所在目錄裡執行。echooffecho0 tem nulsetlocalenabledelayedexpansionfor f delims ain dir a d b b do s... 複製貼上到記事本,另存為xx.bat,編碼選ansi,跟要處理的檔案放一起執行 echo off rem 根據乙個指定的txt檔案裡的每一行內容建立 生成多個txt檔案 title z cd d dp0 for f tokens 1 delims a in type a.txt do echo a ...批處理文字內容。我想批量處理文字的內容,功能是刪除每個文字的其中一行的行首的前幾個字或者行尾的
批處理替換指定檔案中的內容,批處理替換指定檔案中的內容
批處理命令根據文字裡面內容生成新的文字