Iska,
это да, по любому, предполагал наличие только разнообразных распространенных архивов да может пару файлов txt, но конечно лучше все же, если нет уверенности в содержимом директории прописать возможные расширения и это тоже легко сделать сделать добавив их под dir
Код:
...('dir /a-d/b "*.7z" "*.rar" "*.zip"')...
вообще, если увеличить несколько масштабы кода, можно сделать вариант для перебора всех возможных расширений установленной по штатному пути 7z
(надеюсь путь к dll и файлу string.txt действительно не отличается в зависимости от версий - не проверял)
Код:
@echo off
set "d=C:\Folder"
set "ar=%ProgramFiles%\7-Zip\7z.exe"
call :r
pushd "%d%"
for /f "delims=" %%a in ('dir /a-d/b %exp%') do "%ar%" x "%%a" -o"%%~na" -y
popd
pause& exit
:r
"%ar%" x "%Programfiles%\7-Zip\7z.dll" -o$ "string.txt" -r
for /f "delims=" %%f in ('dir /a-d/b/s "$\string.txt"') do (
<"%%f" (for /f "delims=" %%a in ('find /n /v ""') do @>nul chcp 866& set "x=%%a"& cmd /v/c set "x=!x:*]^^=!")
)
for %%x in (%x%) do echo %%x|>nul find ":" && for /f "delims=:" %%a in ("%%x") do >>+<+ set /p exp=""*.%%a" "
>nul 2>&1 del /q +& >nul 2>&1 rd /s /q $
exit /b