Разархивируйте с тем же именем папки и должны иметь все файлы (командные строки .bat) [дублировать]

В PHP вам нужно либо использовать функции multibyte , либо включить mbstring.func_overload . Таким образом, такие вещи, как strlen, будут работать, если у вас есть символы, которые принимают более одного байта.

Вам также потребуется определить набор символов ваших ответов. Вы можете использовать AddDefaultCharset, как указано выше, или написать PHP-код, который возвращает заголовок. (Или вы можете добавить тег META в свои HTML-документы.)

7
задан Mark Kennedy 13 June 2013 в 02:38
поделиться

4 ответа

Попробуйте это:

for /R "C:\root\folder" %%I in ("*.zip") do (
  "%ProgramFiles(x86)%\7-Zip\7z.exe" x -y -o"%%~dpI" "%%~fI" 
)

или (если вы хотите извлечь файлы в папку с именем после Zip-файла):

for /R "C:\root\folder" %%I in ("*.zip") do (
  "%ProgramFiles(x86)%\7-Zip\7z.exe" x -y -o"%%~dpnI" "%%~fI" 
)
25
ответ дан Ansgar Wiechers 25 August 2018 в 14:58
поделиться

Ответ Ансгара выше был для меня совершенно идеальным, но я также захотел удалить архивы, если извлечение было успешным. Я нашел этот и включил его в приведенное выше, чтобы дать:

for /R "Destination_Folder" %%I in ("*.zip") do (
  "%ProgramFiles%\7-Zip\7z.exe" x -y -aos -o"%%~dpI" "%%~fI"
  "if errorlevel 1 goto :error"
    del "%%~fI"
  ":error"
)
2
ответ дан Billy Scott 25 August 2018 в 14:58
поделиться

Попробуйте это.

@echo off
for /F "delims=" %%I IN (' dir /b /s /a-d *.zip ') DO (
    "C:\Program Files (x86)\7-Zip\7z.exe" x -y -o"%%~dpI\%%~nI" "%%I" 
)
pause
1
ответ дан foxidrive 25 August 2018 в 14:58
поделиться

Возможно ли, что некоторые ваши zip-файлы имеют пространство в имени? Если это ваша первая строка должна быть:

for /F "usebackq" %%I IN (`dir /b /s "*.zip"`) DO (

Обратите внимание на использование `вместо 'См. FOR /?

-1
ответ дан RGuggisberg 25 August 2018 в 14:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: