
Мне нужно объединить набор файлов 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=*
; (и подумайте: может быть, я ошибаюсь в этом предложении).
Ресурсы(обязательно к прочтению):
- (справочник команд)Индекс AZ командной строки Windows CMD
- (полезные особенности)Синтаксис командной строки оболочки Windows CMD
- (
%~I
и т.д. специальная страница)Аргументы командной строки (параметры) - (специальная страница)Включить отложенное расширение
- (
>>
и>
т.д. специальная страница)Перенаправление