怎么批量删除文件夹中所有的txt文件的前31行?
最好是批处理命令,前31行还可以调的,比如说前n行。谢谢大家的回答,我想要a6930715的那种答案,但是他的运行结果显示“系统显示找不到指定的文件”我搜索到的批处理代码...
最好是批处理命令,前31行还可以调的,比如说前n行。
谢谢大家的回答,我想要 a6930715 的那种答案,但是他的运行结果显示“系统显示找不到指定的文件”
我搜索到的批处理代码如下,运行结果是删除了txt中的前31行,和最后一行,但是我不想让删除最后一行,却不会弄,并且这个代码的运行速度还很慢。
@echo off
setlocal enabledelayedexpansion
for %%a in (*.txt) do (
set n=0
for /f "skip=1 delims=" %%b in ('type "%%a"') do (
if "!n!"=="31" (echo !b!>"%%a") else echo !b!>>"%%a"
set "b=%%b" & set /a n+=1
))
pause 展开
谢谢大家的回答,我想要 a6930715 的那种答案,但是他的运行结果显示“系统显示找不到指定的文件”
我搜索到的批处理代码如下,运行结果是删除了txt中的前31行,和最后一行,但是我不想让删除最后一行,却不会弄,并且这个代码的运行速度还很慢。
@echo off
setlocal enabledelayedexpansion
for %%a in (*.txt) do (
set n=0
for /f "skip=1 delims=" %%b in ('type "%%a"') do (
if "!n!"=="31" (echo !b!>"%%a") else echo !b!>>"%%a"
set "b=%%b" & set /a n+=1
))
pause 展开
4个回答
展开全部
@ECHO OFF
::设置要操作的文件夹路径如"d:\"及删除的前N行如31
SET TxtDir="d:\"
SET /A N=31
ECHO 开始操作,请稍后...
CD /D %TxtDir%
FOR /F "tokens=1 delims=" %%I IN ('DIR /A /B *.txt') DO ((MORE +%N% "%%I">"%%I_")&(DEL /A /F /Q "%%I")&(REN "%%I_" "%%I"))
ECHO 操作结束
PAUSE
注:运行前根据上述注释设置好文件夹名及删除行数;而且这个运行起来应该很快!
::设置要操作的文件夹路径如"d:\"及删除的前N行如31
SET TxtDir="d:\"
SET /A N=31
ECHO 开始操作,请稍后...
CD /D %TxtDir%
FOR /F "tokens=1 delims=" %%I IN ('DIR /A /B *.txt') DO ((MORE +%N% "%%I">"%%I_")&(DEL /A /F /Q "%%I")&(REN "%%I_" "%%I"))
ECHO 操作结束
PAUSE
注:运行前根据上述注释设置好文件夹名及删除行数;而且这个运行起来应该很快!
展开全部
用Replace Pioneer来实现。
1. 打开Tools->Batch Runner菜单
2. 点击Pick Files选择待处理的多个文件
3. 点击Fast Replace按钮,点击Add,在Search输入"^([^\n]*\n){31}"(不带双引号),点击ok
4. 点击Start即可。
注意提前备份。
1. 打开Tools->Batch Runner菜单
2. 点击Pick Files选择待处理的多个文件
3. 点击Fast Replace按钮,点击Add,在Search输入"^([^\n]*\n){31}"(不带双引号),点击ok
4. 点击Start即可。
注意提前备份。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
@echo off
setlocal enabledelayedexpansion
for %%i in (*.txt) do (
set no=0
for /f "skip=1" %%a in (%%i) do (
if !no!==1 if not "!last!"=="" echo !last!>>tmp.txt
set no=31
)
del %%i
ren tmp.txt %%i
)
条件就是,那些txt文件的名字中不要含空格。将这个批处理放到那个文件夹里面执行就可以了 批处理就是.bat文件,保存为.bat文件运行
setlocal enabledelayedexpansion
for %%i in (*.txt) do (
set no=0
for /f "skip=1" %%a in (%%i) do (
if !no!==1 if not "!last!"=="" echo !last!>>tmp.txt
set no=31
)
del %%i
ren tmp.txt %%i
)
条件就是,那些txt文件的名字中不要含空格。将这个批处理放到那个文件夹里面执行就可以了 批处理就是.bat文件,保存为.bat文件运行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先选中第一个文件,然后按住Shift,再点第31个文件。就选中了前31个文件了。然后直接删除就OK了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询