Windows 批处理程序

Windows 批处理程序

我必须合并一组 ASCII 文件,并且我尝试使用这个批处理文件,这个文件会创建一个新文件,该文件组合所有文件并从每个文件中删除标题。

@echo off

FOR /F "delims=*" %%i in (header.txt) do @echo %%i
FOR /F "skip=1 delims=*" %%i in (A1.DAT A2.DAT A3.DAT A4.DAT A5.DAT) do @echo %%i

这个批处理文件可以工作,但我想使用通配符(如 *.dat),而不是在批处理文件中提供每个文件名。有人能帮我一下吗,如何使用通配符而不是输入单个文件名?

答案1

尝试下一个代码片段:

@echo off
SETLOCAL EnableExtensions
FOR /F "delims=" %%i in (header.txt) do @echo %%i
FOR %%I in (*.dat) do @FOR /F "usebackq skip=1 delims=" %%i in ("%%~I") do @echo %%i

使用方法如下:>"1127756merged.txt" 1127756.bat

这里

  • FOR %%I in (*.dat)循环返回.dat当前目录文件夹中所有文件的列表;
    • 该列表动态的即加载您在处理过程中添加到文件夹中的文件;
    • 得到一个静止的列出,改用FOR /F "delims=" %%I in ('dir /B *.dat')
  • 嵌套%%i循环按顺序处理所有文件;
  • 注意delims=而不是你的delims=*;(并思考:也许我的这个建议是错误的)。

资源(必读):

相关内容