批處理文字內容。我想批量處理文字的內容,功能是刪除每個文字的其中一行的行首的前幾個字或者行尾的

2021-06-26 11:18:03 字數 4260 閱讀 1129

1樓:匿名使用者

@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 %hn% (

set "h=%%k"

if defined h (

setlocal enabledelayedexpansionset "h=!h:~%sn%!"

echo/!h!

endlocal)else echo/

)else echo/%%k

))>temp.yky

move temp.yky "%%i"

set/a n+=1)

echo 共處理 %n% 個檔案

pause

2樓:匿名使用者

下邊**有註釋,你在把**儲存成bat檔案的時候要把註釋去掉,批處理檔案要和 文字檔案放在同一目錄下

set /a n=7 第七行,這個數字你自己改

set /a m=0

cd.>temp.txt

setlocal enabledelayedexpansion

for /f "tokens=* delims=" %%a in ("廉政英雄.txt") do (

set /a m=!m!+1

if "!m!"== "!n!" (

set str=%%a

set str=!str:~0,-3! "-3"表示要去掉倒數3個字,你自己改

要去掉前邊3個字 就用 set str=!str:~3!

echo !str!>>temp.txt

) else (

echo %%a>>temp.txt))

endlocal

del 廉政英雄.txt /f/q

ren temp.txt 廉政英雄.txt

3樓:匿名使用者

@echo off&setlocal enabledelayedexpansion

title 刪除某行前面或者後面幾個位元組

::先得出共有多少行

set /a num_max=0

for /f "delims=" %%a in (廉政英雄.txt) do (

set /a num_max+=1

):shuruhang

echo.輸入要刪除行:

set /p num_hang=

if !num_hang! leq !num_max! goto :yesorno

echo.輸入有誤!重新輸入&ping -n 2 127.1>nul&goto :shuruhang

:yesorno

::用del_=1或者2來識別刪除前面位元組或者後面位元組

set/a del_=0

echo.刪除前面位元組輸入y,後面位元組輸入n?

set/p input=

if "!input!"=="y" set/a del_=1&goto :function1

if "!input!"=="n" set/a del_=2&goto :function1

echo.輸入錯誤&ping -n 3 127.1>nul&goto :yesorno

::這個輸入刪除位元組數

:function1

echo.請輸入刪除位元組數:

set/p num_bit=

if "!num_bit!" gtr "0" goto :function2

echo.輸入有誤!&ping -n 2 127.1>nul&goto :function1

::對文字進行操作

:function2

set/a num_temp=0

for /f "delims=" %%a in (廉政英雄.txt) do (

set/a num_temp+=1

set str_temp=%%a

if "!num_temp!" equ "!num_hang!" (

if "!input!"=="y" (

echo !str_temp:~%num_bit%!>>temp.txt) else (

echo !str_temp:~0,-%num_bit%!>>temp.txt)

) else (

echo !str_temp!>>temp.txt))

echo.親,處理完畢。&""temp.txt""

我測試成功!祝你好運。

如果對你有幫助,請採納!

批處理bat 批量刪除txt文字指定的行

4樓:繁亭晚操戌

@echo off

setlocal enabledelayedexpansionfor /l %%a in (1,1,1000) do (set /a n=0

for /f %%i in (%%a.txt) do (set /a n+=1

if /i !n!==3 set "var%%a=%%i"))for /l %%a in (1,1,1000) do (echo !var%%a!)

::1.txt中的第三行變專

量為:!var1!

::2.txt中的第三行變數為:!var2!

:: 。。

屬。。。。。。。。。。。。

::1000.txt中的第三行變數為:!var1000!

::萬用字元的使用要看場合。

pause

5樓:匿名使用者

那就不要空行

@echo off

for %%i in (2,4)do set #%%i=y(for /f "tokens=1* delims=:" %%i in ('findstr/n .* "1.

txt"')do (

if not defined #%%i echo;%%j))>"2.txt"

pause

如果要改原檔案回

,最後一行答前插入一行

move "2.txt" "1.txt"

6樓:逝雪藍冰

linux命令copy

(windows下可以安裝一個git):

sed -i '2d' 1.txt

刪除bai1.txt檔案中的du第二行。

find *.txt |xargs sed -i '2d'

批量刪除文zhi件夾中所有的txt檔案的第二行。

我也遇dao到了這個問題,已通過這條命令解決。

如何用批處理批量刪除文字文件的內容裡面每行的前若干個字

7樓:匿名使用者

嗯,就是這樣簡單。

@echo off

set fn=a.txt

(for /f "tokens=1*" %%i in ('type "%fn%"') do echo %%j)>temp.txt

move /y temp.txt "%fn%"

8樓:匿名使用者

以空格作為分割符取第二列即可

9樓:風元素精靈

要怎麼刪,每行前刪除多少個字元

10樓:匿名使用者

@回聲關閉

setlocal enabledelayedexpansion

for / f“delims =”%%i in('dir / b /廣告*。txt“)做(

集合d =%%科幻&設定n =%%nxi&設定p =%%dpi以與使用echo 0>“!p!統”> nul

for / f“標記= * delims =”%%一個在('“! d“型”)做(集合m =%%一個

如果不是“m:!2,300”==“”(回聲m:!“!p tem”2,300 >>)) “!d”!br /> del / f / q&仁“!p統”的“n”)

退出說明:每次執行蝙蝠時間將刪除該目錄下的第一個兩個字元txt檔案,所以不要多跑。

11樓:匿名使用者

簡單,選定要刪的內容,點右鍵剪下即可

12樓:匿名使用者

所示說明不夠詳細,前幾個字元是什麼規律,是有指定分隔符,還是指定長度???

批處理顯示文字中重複出現的內容,批處理比對多文字檔案的 找出相同內容另存為乙個文字

你太想當然了。批處理最不擅長的就是進行字串處理。建議你還是學乙個sed或者gawk之類的專門用來處理字串的工具的用法。需要學正規表示式,太麻煩,平常用不到,好不容易學會了,幾天就忘了。echo off setlocal enabledelayedexpansion for f tokens i in...

批處理命令根據文字裡面內容生成新的文字

複製貼上到記事本,另存為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 ...

批處理按條件批量移動檔案,bat批處理,根據清單中的檔名將多個檔案移動到另外乙個路徑下,如何批量處理?非常感謝!

echo off setlocal enabledelayedexpansionfor i in txt do set str ni copy i b str 1 以上為 放在資料夾a裡執行,如果不不行的話,吧.b 改成b資料夾的相對路徑 好辦,稍等,大概要10分鐘內,如果你還有要補充的,繼續追問你...