Windows批处理程序


0

我必须合并一组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这样的通配符,而不是在批处理文件中提供每个文件名。有人可以帮助我,如何使用通配符而不是键入单个文件名?

Answers:


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)loop返回.dat当前目录文件夹中所有文件的列表;
    • 此列表是动态的,即加载您在处理过程中添加到文件夹的文件;
    • 获取静态列表,FOR /F "delims=" %%I in ('dir /B *.dat')改为使用;
  • 嵌套%%i循环按顺序处理所有文件;
  • 注意delims=而不是你的delims=*; (并想一想:也许这个建议我错了)。

资源(必读):

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.