У меня есть 50k ZIP-файлы в папке. Мне нужно разархивировать весь этот контент, объединить все в один отдельный файл и удалить все заархивированные файлы. Я пытаюсь распаковать содержимое без необходимости иметь новый распакованный файл, который мне придется удалить. Ниже приведена эквивалентная операция, которую я сейчас выполняю в Linux, которая работает.Распакуйте содержимое и соедините содержимое в файл
for f in *.zip;
do
unzip -p "${f}" >> concatenatedfile.txt;
rm $f;
done;
Но мне нужно сделать это в окнах через Batch, и я ограничусь использованием 7z для распаковки.
В настоящее время используется следующий код, где я жестко кодирую текстовое имя файла для целей тестирования, и он работает. Я пытаюсь получить это имя файла динамически и, если возможно, вообще не создаю этот файл и просто получаю данные zip-файла и продолжаю добавлять в файл concatenatedfile.txt.
for %%z in (*.zip) do (
7z e "%%~fz" > NUL:
type hardcoded_filename.txt >> concatenatedfile.txt
del hardcoded_filename.txt
del %%z
)
Вы должны сделать второй цикл в рамках первого подобрать извлеченный файл. –
@Noodles Второй цикл, хотя это всего лишь один файл в каждом цикле? Могу ли я получить пример, пожалуйста. – kar
Так вы говорите, что текстовый файл внутри zip-файла не совпадает с именем? – Squashman