SET "filename1=alreadydone.txt"
IF NOT EXIST "%filename1%" ECHO x:>>"%filename1%"
FOR /f "delims=" %%a IN (
'dir /b /a-d /o:d "*.csv" ^|findstr /x /v /g:"%filename1%'
) DO (
rem do your combine-file [%%a] here
ECHO %%a>>"%filename1%"
)
Эта часть-рутина (генерации %%a
вместо %%F
, потому что это то, что делает мой шаблон) принимает список каталогов и исключает файлы в filename1
. Остальные файлы доставляются в раздел комбайнового файла кода, который вы уже создали, и имя файла записывается в filename1
.
Строка if not exist
создает фиктивную запись в filename1
, так что findstr
не жалуется, что файл пуст.
С этой схемой, как только любой файл был обработан, его имя сохраняется в filename1
, и оно не будет повторно обрабатываться. Комбинированный код будет комбинироваться только с новыми файлами.
Результат: Нет якоря около «7» или любого другого количества дней. Если вы запустите его на 7 дней, эти 7 дней обработки будут объединены и записаны. Если вы сделаете это в 5 дней в ожидании праздничного дня, он будет сочетать эти 5 дней. Если вы отправитесь в отпуск на 2 недели, то, поскольку никто не будет следовать вашей инструкции, чтобы запустить его, он будет сочетать последние 14 дней. Или вы могли бы запустить его каждый день ...
Так вот объединенная партия
@echo off
setlocal
set first=1
set fileName="combinedFiles.csv"
SET "filename1=alreadydone.txt"
IF NOT EXIST "%filename1%" ECHO x:>>"%filename1%"
>%fileName% (
for /f %%F in ('dir /b /a-d /o:d "*.csv" ^|findstr /x /v /g:"%filename1%"'
) do (
ECHO %%F>>"%filename1%"
if not "%%F"==%fileName% (
if defined first (
type "%%F"
set "first="
) else more +1 "%%F"
)
)
)
[Edit:] удален sourcedir
в for/f
, поскольку не требуется никакого каталога-спецификация (файлы находятся в текущем каталоге)
[Дальнейшее редактирование:] добавьте /f
в for
и добавьте отсутствующие уши закрывающего кролика.
не работал, он удалил мой существующий файл csv, но не создал новый.Если я посмотрю на код, похоже, вы переходите в конкретный каталог. Предположим, я запустил файл '.bat' в каталоге, где находятся файлы. – davejal
Извините, я забыл закрытие скобки и два теста двойной кавычки - он снова – SachaDee
oke, теперь он работает, занимает 7 файлов, но берет первый созданный (по дате) Мне нужен последний созданный по дате. Если возможно, это может быть более 7 файлов, но взять файлы, созданные за последние 7 дней. уже +1 для решения – davejal