Tom*_*son 5 windows dos batch-file
我正在寻找一个DOS批处理文件的简单示例,该文件将删除数千个txt文件的第一行,并使用原始文件名保存文件.在另一个程序执行批处理之后,我必须在外部处理之后在每个文件的开头添加删除的行(由"X,Y,Z"组成的文本字符串).
您可以使用more +1跳过文件的第一行.然后你可以把它管道到一个临时的(你不能编辑文本文件):
for %x in (*.txt) do (more +1 "%x">tmp & move /y tmp "%x")
之后,您可以使用类似的技术重新添加第一行:
for %x in (*.txt) do ((echo X,Y,Z& type "%x")>tmp & move /y tmp "%x")
如果您在批处理文件中使用它们,请记住加倍%符号:
@echo off
for %%x in (*.txt) do (
    more +1 "%%x" >tmp
    move /y tmp "%%x"
)
rem Run your utility here
for %%x in (*.txt) do (
    echo X,Y,Z>tmp
    type "%%x" >>tmp
    move /y tmp "%%x"
)
好吧,显然more不适用于太大的文件,这让我感到惊讶.作为替代方案,如果您的文件不包含空行,它应该有效(尽管它看起来像我收集的CSV):
for %%x in (*.txt) do (
    for /f "skip=1 delims=" %%l in ("%%x") do (>>tmp echo.%%l)
    move /y tmp "%%x"
)