@ECHO Off
SETLOCAL
SET "sourcedir=U:\sourcedir"
SET "destdir=U:\destdir"
SET "outfile=%destdir%\outfile.txt"
(
FOR /f "delims=" %%i IN ('dir /b/a-d "%sourcedir%\*.txt"') DO (
FOR /f "usebackqtokens=1-3delims=<=>" %%a IN ("%sourcedir%\%%i") DO (
IF "%%b"=="TITLE" ECHO(%%i %%c
IF "%%a"=="TITLE" ECHO(%%i %%b
)
)
)>"%outfile%"
GOTO :EOF
Вам нужно будет изменить настройки sourcedir
и destdir
в соответствии с ваши обстоятельства.
Производит файл, определенный в% выходной_файле%
if...%%a
линии будет вызываться, если нет начальных пробелов, то if...%%b
, если есть начальные пробела.
Я изменил порядок полей отчета, поскольку это, казалось, имело для меня больше смысла. Если вам действительно нужен отчет в обратном порядке, просто отмените %%i
и %%a/%%b
в операциях echo
.
Эта процедура создает одну строку для каждого входного файла.
@ECHO Off
SETLOCAL
SET "sourcedir=U:\sourcedir"
SET "destdir=U:\destdir"
SET "outfile=%destdir%\outfile.txt"
(
FOR /f "delims=" %%i IN ('dir /s/b/a-d "%sourcedir%\*.txt"') DO (
FOR /f "usebackqtokens=1-3delims=<=>" %%a IN ("%%i") DO (
IF "%%b"=="TITLE" ECHO(%%i %%c
IF "%%a"=="TITLE" ECHO(%%i %%b
)
)
)>"%outfile%"
GOTO :EOF
же процедура корректируется, чтобы включить сканирование подкаталогов. Обратите внимание, что в этом случае dir /s /b
включает в себя путь в списке.
Возможно, вы захотите поместить echo
ed %%i
в кавычки в случае разделителей в пути/именах файлов.
Я говорю о командной строке Windows. Извините за путаницу – john