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=*; (並想一想:也許我的這個建議是錯的)。

資源(必讀):

相關內容