У меня есть группа RAR-файлов, содержащих JPG, и я пытаюсь получить имя первого файла каждого RAR-файла.Запрос справки по пакетному сценарию: как найти разрыв строки?
Например, если я бег 7z l -r abc.rar
, я хотел бы получить это первый файл 01.jpg
path = xyz.rar
Type = zip
Physical Size = 15430338
Date Time Attr Size Compressed Name
------------------- ----- ------------ ------------ ------------------------
2003-03-06 13:32:44 ....A 330433 325405 01.jpg
2003-03-06 13:34:08 ....A 301098 291857 02.jpg
2003-03-06 13:34:14 ....A 257770 244619 03.jpg
2003-03-06 13:34:22 ....A 301220 292019 04.jpg
2003-03-06 13:34:30 ....A 326989 316380 05.jpg
До сих пор, со следующим пакетным сценарием, я могу раздеться метаданными команды 7z и получить список файлов в файле contents.txt
.
set PATH=%PATH%;"C:\Program Files\7-Zip"
for %%f in ("*.*") do (
echo "%%f" >> contents.txt
echo.
7z l -r "%%f" | FIND /V "ing " | FIND /V "Igor Pavlov" | FIND /V "--" | FIND /V "Path" | FIND /V "Type" | FIND /V "Solid" | FIND /V "Blocks" | FIND /V "Multivolume" | FIND /V "Volumes" | FIND /V "Date" | FIND /V "---" | FIND /V "Physical Size" | FINDSTR /R /E ".jpg" >> contents.txt
echo.
)
PAUSE
Пример вывод:
"abc.rar"
2003-03-26 01:18:50 ....A 331711 330648 01.jpg
2003-03-26 01:18:54 ....A 271173 270942 02.jpg
"xyz.rar"
2003-07-08 22:40:56 ....A 445799 430058 p00.jpg
2003-07-08 22:40:40 ....A 181324 142554 p01.jpg
2003-07-08 22:40:42 ....A 384901 370140 p02.jpg
"efg.rar"
2003-07-08 22:42:54 ....A 156436 115275 xy01abc.jpg
2003-07-08 22:42:58 ....A 456633 448240 xy02abc.jpg
2003-07-08 22:42:58 ....A 355114 339026 xy03abc.jpg
2003-07-08 22:42:58 ....A 355114 339026 xy04abc.jpg
Я думаю, если я настроить мой сценарий, чтобы найти первый разрыв строки, за которой следует «.jpg» на выходе 7z, я могу получить имя файла в следующий формат:
"abc.rar"
2003-03-26 01:18:50 ....A 331711 330648 01.jpg
"xyz.rar"
2003-07-08 22:40:56 ....A 445799 430058 p00.jpg
"efg.rar"
2003-07-08 22:42:54 ....A 156436 115275 xy01abc.jpg
Но я не знаю, как искать разрыв строки в команде FINDSTR. Я пытался найти для ".jpg \ п" в Findstr:
7z l -r "%%f" | FIND /V "ing " | FIND /V "Igor Pavlov" | FIND /V "--" | FIND /V "Path" | FIND /V "Type" | FIND /V "Solid" | FIND /V "Blocks" | FIND /V "Multivolume" | FIND /V "Volumes" | FIND /V "Date" | FIND /V "---" | FIND /V "Physical Size" | FINDSTR /R /E ".jpg\n" >> contents.txt
Но это не сработало.
Может ли кто-нибудь мне помочь?
Мой требуемый выход раздеться всю информацию о размере даты и файла с выхода имени файла и добавить его после имени RAR файла, такие как:
"abc.rar" 01.jpg
"xyz.rar" p00.jpg
"efg.rar" xy01abc.jpg
Там нет фиксированного шаблон первого JPG файл. Некоторые начинают с 00, некоторые с 01, некоторые с текстом и номером (пример x00y.jpg). Я пробовал различные методы поиска имен файлов, которые начинаются с 00 или 01 с текстом и без него (например, в моей команде я использовал FINDSTR /R /E "[a-z][0-1]*.jpg"
для поиска имен файлов с текстом и номером, но есть некоторые RAR-файлы без текста в имена файлов).