我正在绞尽脑汁地寻找一个简单的 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")
如果您在批处理文件中使用它们,请记住将%
signs:
@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"
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)