Предыстория: я использую 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
/do
чтобы циклически проходить по различным строкам Metro (чтобы облегчить поддержку кода). Я всегда мог просто добавить новый экземпляр вышеупомянутого для каждой из линий Метро.
Я думаю, что круглые скобки в именах файлов мешают круглые скобки в цикле, потому что он сразу разрывается. Должен быть способ избежать скобок, но я пробовал косые черты и т.д. кажется, ничего не работает. Я надеюсь, что есть лучший способ сделать это.
Это основа кода, без множества вещей, которые я уже пробовал:
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