여러 파일을 결합하는 배치 파일(이름에 괄호가 있음)

여러 파일을 결합하는 배치 파일(이름에 괄호가 있음)

배경: 저는 IFTTT를 사용하여 DC Metro 게시판을 RSS 피드에서 내 BBS용 텍스트 파일로 가져오고 있습니다. 가장 큰 문제는 IFTTT가 파일을 덮어쓰거나 추가할 수 없기 때문에 디렉터리에 여러 개의 파일 복사본이 있다는 것입니다.

red.txt
red (1).txt
red (2).txt

등등. 파일의 원본(비) 버전을 자리 표시자로 남겨두고 하루 종일 다른 파일을 병합하는 데 집중하고 있습니다. 한 세트의 파일에 대해 다음과 같이 작동합니다.(x).txt

if exist "red (1).txt" for %%f in ("red (*.txt") do type "%%f" >> red_line.txt & del "%%f"

for여러 개의 파일 세트(각각 다른 색상 또는 색상 조합)가 있으므로 다른 Metro 회선을 순환하는 상위 / 루프 를 만들려고 합니다 do(코드를 더 쉽게 유지 관리할 수 있도록 만들기 위해). 언제든지 각 지하철 노선에 대해 위의 새 인스턴스를 추가할 수 있습니다.

파일 이름에 있는 괄호가 루프에 있는 괄호를 방해하는 것 같습니다. 즉시 중단되기 때문입니다. 괄호를 벗어날 수 있는 방법이 있을 것입니다. 그러나 저는 슬래시와 캐럿 등을 시도해 보았습니다. 아무것도 작동하지 않는 것 같습니다. 이 작업을 수행하는 더 좋은 방법이 있기를 바랍니다.

이것은 이미 시도한 수많은 작업이 포함되지 않은 코드의 기본입니다.

FOR %%A IN (red green orange red_orange) DO  ( 
if exist "%%A (1).txt" for %%B in ("%%A (*.txt") do type "%%B" >> %%A_line.txt & del "%%B"
)

이것은 내가 얻은 것의 예입니다.

C:\sbbs\Dropbox\bbs\ifttt>(if exist "red (1).txt" for %B in ("red (*.txt") do type "%B" 1>>red_line.txt & del "%B" )

C:\sbbs\Dropbox\bbs\ifttt>(if exist "green (1).txt" for %B in ("green (*.txt") do type "%B" 1>>green_line.txt & del "%B" )

C:\sbbs\Dropbox\bbs\ifttt>(if exist "orange (1).txt" for %B in ("orange (*.txt") do type "%B" 1>>orange_line.txt & del "%B" )

C:\sbbs\Dropbox\bbs\ifttt>(if exist "yellow (1).txt" for %B in ("red_orange (*.txt") do type "%B" 1>>red_orange_line.txt & del "%B" )

내가 보고 있는 결과의 일부는 지루합니다.

 do type "%B" 1>>

그 "1"은 (1)에서 나온 것이겠죠?

또한 내 공백이 결과에 포함되지 않는 것을 확인했습니다.

do type "%B" 1>>orange_line.txt

답변1

저는 CMD가 아닌 PowerShell에서 이 작업을 수행하겠습니다. PowerShell에서 모든 폴더에 대해 외부 루프를 만들고 각 폴더의 파일을 파일 개체 배열로 가져온 다음 이름은 신경 쓰지 않습니다.

새 파일로 병합하고 처리된 파일을 삭제하거나 다시 원할 경우 아카이브로 이동하세요.

관련 정보