我有一个简单的批处理文件,用于删除桌面上批处理文件指定的文本文件的前26行。
more +26 "data (1).txt" >"data (1).txt.new"
move /y "data (1).txt.new" "data (1).txt"
我希望能够在具有类似命名约定的多个文本文件上运行此操作,例如data (1).txt
,data (2).txt
,data (3).txt
,文件数量每周波动到周。
我还希望程序能够在其实际位置搜索文件,而不必将文本文件带到桌面以便能够运行它。
感谢任何帮助。感谢。
答案 0 :(得分:0)
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir\one"
FOR %%a IN ("%sourcedir%\*(*).txt") DO (
ECHO(MORE +26 "%%a" GTR "%%a.new"
ECHO(MOVE /y "%%a.new" "%%a"
)
GOTO :EOF
您需要更改sourcedir
的设置以适合您的具体情况。
所需的MORE / MOVE命令仅用于ECHO
用于测试目的。 在您确认命令正确后,将ECHO(MOVE
更改为MOVE
并将ECHO(MORE
更改为MORE
以实际处理文件。添加>nul
以取消1 file moved
上的报告消息(例如MOVE
)并将GTR
更改为>
上的MORE
。
这假设您知道哪个目录包含文件,并且要处理的文件符合模式*(*).txt
。如果要求实际上是data(*).txt
,则将*(*)
更改为。{/ p>