У меня есть два пакетных сценария Windows, которые оба работают, чтобы найти папку, в которую они помещены, и извлечь каждый файл .rar в папку файлов RAR.
Однако, когда папка использует структуру:
file.part01.rar
file.part02.rar
file.part03.rar ect..
сценарий захлебывается, пытаясь извлечь из каждого из этих файлов один файл (так как они соответствуют расширению .rar) и предоставляет пользователю файл FileExtract.bla, который уже существует: Перезаписать? (Да нет ? X раз количество частей архива rar (часто 20 или 30 раз).
Я пытался выяснить, как в моем пакетном скрипте сначала отфильтровать любые файлы с расширениями от part02.rar до part99.rar (но не от part01.rar, поскольку это файл, который я действительно хочу извлечь), прежде чем передать его в "" DO "/ команда unrar.
Вот два разных пакетных файла, которые работают одинаково (и одинаково не работают в файлах part02.rar):
@ECHO OFF &SETLOCAL disableDelayedExpansion
SET "sourcefolder=."
FOR /R "%sourcefolder%" %%a IN (*.r*) DO (
FOR /f "delims=" %%b IN ('echo %%~xa^|findstr /r "\.r.*"') DO
("C:\Program Files\7-zip\7z.exe" x "%%~a")
)
и № 2:
@echo on
FOR /D /r %%F in ("*") DO (
pushd %CD%
cd %%F
FOR %%X in (*.rar *.zip) DO (
"C:\Program Files\7-zip\7z.exe" x "%%X"
)
popd
)
Спасибо