배경: 저는 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에서 모든 폴더에 대해 외부 루프를 만들고 각 폴더의 파일을 파일 개체 배열로 가져온 다음 이름은 신경 쓰지 않습니다.
새 파일로 병합하고 처리된 파일을 삭제하거나 다시 원할 경우 아카이브로 이동하세요.