Я пытаюсь переименовать содержимое zip-файла, чтобы соответствовать имени zip-файла с пакетным файлом.
Это именно то, что я пытаюсь сделать : https://stackoverflow.com/questions/22853824/zip-file-to-unzip-and-rename-files-and-zip-back/25732864#25732864
это работает, но только если zip-файлы не имеют пробелы в имени файла. В противном случае он создает кучу пустых папок где пространство происходит во имя zip-файла.
Phil Ответ V работает хорошо, но я думаю, что его просто нужно немного доработать:
:: # Core Logic
:: # Looping through all the zips
for %%c in (*.zip) do (
:: # Make a temporary folder with the same name as zip to house the zip content
if not exist %%~nc md %%~nc
:: # Extracting zip content into the temporary folder
7z e -o%%~nc %%c
if exist %%~nc (
:: # Jump into the temporary folder
pushd %%~nc
if exist *.* (
:: Loop through all the files found in the temporary folder and prefix it with the zip's name
for %%i in (*.*) do (
ren %%i %%~nc.%%i
)
:: # Zip all the files with the zip prefix with orginal zip name but with a number 2 (abc2.zip)
if exist %%~nc.* (
7z a -tzip %%~nc2 %%~nc.*
)
:: # Move the new zip back out of the tempory folder
if exist %%~nc2.zip move %%~nc2.zip ..
)
:: # Jump out of the temporary folder
popd
:: # Showing you the directory listing
dir
:: # Showing you the content inside the new zip
7z l %%~nc2.zip
:: # Remove the temporary folder (Clean up)
rd /s/q %%~nc
)
)
Update: OK работает с помощью webmarc (см. Решение ниже).
потребовалось несколько проб и ошибок, но в конце концов я понял, где котировки необходимы, чтобы заставить его работать так, как мне нужно. Так же, как webmarc сказал " поставить кавычки вокруг любых других аргументов в вашей программе, которые могут иметь встроенные пробелы."