當前位置:首頁 » 網路管理 » bat如何批量刪除txt
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

bat如何批量刪除txt

發布時間: 2022-06-26 06:32:34

A. bat批處理TXT文件 批量刪除小於5個字元的整行

不清楚你的實際文件/情況,僅以問題中的樣例/說明為據;以下代碼復制粘貼到記事本,另存為xx.bat,編碼選ANSI,跟要處理的文件放一起雙擊運行
<# :
cls&echo off
rem 刪除txt文本文件內字元數小於指定數量的行
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
set "newfolder=#result"
if not exist "%newfolder%" md "%newfolder%"
powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::GetEncoding('GB2312')))) -Args '%~f0'"
echo;%#% +%$%%$%/%@% %z%
pause
exit
#>
$maxcount=5;
$newfolder=get-item -liter $env:newfolder;
$self=get-item -liter $args[0];
$path=$self.Directory.FullName;
$enc=[Text.Encoding]::GetEncoding('GB2312');
$files=@(dir -liter $path|?{('.txt' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])});
if($files.length -ge 1){
write-host $files[0].Name;
$arr=New-Object -TypeName System.Collections.ArrayList;
$text=[IO.File]::ReadAllLines($files[0].FullName,$enc);
for($j=0;$j -lt $text.count;$j++){
if($text[$j].length -le $maxcount){[void]$arr.add($text[$j]);}
}
$newfile=$newfolder.FullName+'\'+$files[0].Name;
[IO.File]::WriteAllLines($newfile,$arr,$enc);
}

B. 如何用bat批量去掉文件名的後綴

批量出除文件名中相同字元的方法:

步驟1,安裝上面的軟體後打開,點擊【添加文件】按鈕,將需要修改名稱的文件全部添加到軟體中,也可以通過將文件拖動到軟體上的方式進行添加。

C. 筆記本電腦怎樣批量刪除文件

1、首先打開需要批量刪除的文件夾。
2、在文件夾裡面,右鍵-新建-文本文檔。
3、打開文檔把下圖代碼粘貼到裡面,注意:wind:後面添加要批量刪除的文件名字。
4、保存文本文檔,然後修改txt格式為bat。
5、運行bat,刪除成功。

D. 批處理BAT 批量刪除TXT文本指定的行

@echo off
setlocal enabledelayedexpansion
for /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

E. 怎麼用bat命令批量刪除很多TXT文本中前3行和後3行

可以刪除後三行的
@echo off&setlocal enabledelayedexpansionset TxtDir="D:\文檔"echo 開始操作,請稍侯...cd /d %TxtDir%for /f "delims=" %%a in ('dir /a-d/b *.txt') do ( for /f "delims=" %%b in ('type "%%~a"') do set /a n+=1 set /a n=!n!-3 for /f "delims=" %%c in ('type "%%~a"') do ( if !n!==0 ( echo Processing....>nul ) else ( echo %%c>>"%%~a_New" set /a n-=1 ) ) if exist "%%~a_New" ( echo 文件:%%~a 處理完畢。 move "%%~a_New" "%%~a">nul ))echo.&echo 恭喜,所有文件處理完畢,請按任意鍵退出&pause>nul

F. 如何用bat批處理,批量刪除文件夾裡面指定大小以下的小文檔 比如小於21kb的文檔批量刪除。

@echo off

rem 刪除小於4位元組的小txt文件(實際是空文件)

for /r %%F in (*) do if %%~zF LSS 21000 echo del "%%F">>list.txt


然後核對下list.txt里是不是你要刪除的文件名稱,如果是的話,把list.txt改成list.bat,雙擊執行刪除,就搞定了。

上圖是我剛用過的,刪除小於4位元組的文本文件的。

G. 用bat命令批量刪除文件

@echo
off
::把你的文件保存為del.txt里,運行這個批處理就可以了
for
/f
"delims="
%%i
in
(del.txt)do
del
/q/f
"%%i"

H. 急急急求bat批處理:批量刪除所有txt文檔當中第二行以後的內容

搜 百寶箱,,,,V10.0

選擇處理全文模式,勾選使用正則,在待替換內容中輸入:(.+?[ ]).+,在替換新內容中輸入:$1,單擊新增入列表,最後單擊執行。

I. 如圖,如何使用批處理文件批量刪除截圖文件內的「_text」後綴

批量修改文件名方式如下:

1.復制以下代碼到記事本。

@echo off
set /p w=請輸入文件格式(即擴展名並以回車結束):
set /p wf=請輸入要修改的文字(以回車結束):
set /p cb=請輸入要改成的文字(若是刪除則直接回車,以回車結束):
for /f "delims=" %%i in ('dir /b /a-d "*.%w%"' ) do (
set str1=%%i
setlocal EnableDelayedExpansion
set "str1=!str1:%wf%=%cb%!"
ren "%%i" "!str1!"
endlocal
)
pause

2.將記事本後綴改為.bat

編解碼格式不匹配導致

解決辦法:將其用記事本編輯,用另存為,然後將編碼格式修改為ANSI(如下圖↓)

J. 批處理或正則:怎麼批量刪除txt中指定字數以上的行

不清楚你的實際文件/情況,僅以問題中的樣例/說明為據;以下代碼復制粘貼到記事本,另存為xx.bat,編碼選ANSI,跟要處理的文件放一起雙擊運行
<# :
cls&echo off
rem 刪除多個txt文本文件內字元數超過指定數量的行
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
set "newfolder=#result"
if not exist "%newfolder%" md "%newfolder%"
powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::GetEncoding('GB2312')))) -Args '%~f0'"
echo;%#% +%$%%$%/%@% %z%
pause
exit
#>
$maxcount=100;
$newfolder=get-item -liter $env:newfolder;
$self=get-item -liter $args[0];
$path=$self.Directory.FullName;
$enc=[Text.Encoding]::GetEncoding('GB2312');
$files=@(dir -liter $path|?{('.txt' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])});
if($files.length -ge 1){
write-host $files[0].Name;
$arr=New-Object -TypeName System.Collections.ArrayList;
$text=[IO.File]::ReadAllLines($files[0].FullName,$enc);
for($j=0;$j -lt $text.count;$j++){
if($text[$j].length -le $maxcount){[void]$arr.add($text[$j]);}
}
$newfile=$newfolder.FullName+'\'+$files[0].Name;
[IO.File]::WriteAllLines($newfile,$arr,$enc);
}