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=*(그리고 생각해보세요: 아마도 이 제안이 틀렸을 수도 있습니다).

자원(필수 읽기):

관련 정보