批处理脚本:查找文件并删除行

时间:2014-07-17 20:23:08

标签: batch-file

我是批处理脚本的新手,可以使用一些帮助。 我正在尝试编写一个批处理脚本,它将打开.txt文件,删除前4行,并删除一些其他东西,只留下一些数字。我需要一些帮助删除前四行。

@echo off
title test1
start users_6042014.txt

for /f "skip=4 delims=*" %%a in (C:\users_6042014.txt) do (
echo %%a >>C:\newfiletest.txt    
)
xcopy C:\newfiletest.txt C:\users_6042014.txt /y

我认为这会删除第一行并制作新文件的副本,但它不起作用。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

您没有告诉我们批次的“工作”情况。

start users_6042014.txt将使用默认编辑器(可能是记事本)打开文件,这可能不是您想要做的。尝试评论此行,或完全删除它。

请注意

echo %%a >>C:\newfiletest.txt    

将附加到任何现有的C:\newfiletest.txt,并且可能还会在每行的末尾附加一个空格。

尝试

(for /f "skip=4 delims=*" %%a in (C:\users_6042014.txt) do echo %%a)>C:\newfiletest.txt    

重新创建文件。

最后,代替move的{​​{1}}将替换现有文件; xcopy将不复存在。

答案 1 :(得分:0)

测试一下:

这将忽略以;和空行开头的行。

@echo off
title test1

for /f "usebackq skip=4 delims=" %%a in ("C:\users_6042014.txt") do (
>>"C:\newfiletest.txt" echo %%a
)
move "C:\newfiletest.txt" "C:\users_6042014.txt"