1

Фон

У меня есть пакетный файл в Windows XP, который принимает один аргумент: имя zip-файла, созданного с помощью 7-zip.

Этот файл содержит один файл резервной копии MySQL внутри: backup.sql .

Я хотел бы восстановить базу данных, учитывая этот файл zip. Сначала я извлекаю его во временный каталог, например так:

path_to_7zip\7z e "%~1" -otemp_dir

Я хотел бы иметь что - то вроде этого (где extracted_file_name будет backup.sql

path_to_mysql\mysql < extracted_file_name

Вопрос:

Как мне определить имя извлеченного файла (например, backup.sql)?

Что я должен предоставить в качестве входных данных вместо extracted_file_name если я не знаю имя файла, которое находится внутри zip-файла?

2 ответа2

3

Вы можете создать командный файл, содержащий следующие шаги.

cd\7ztemp
del \7zout\*.* /q
7z e *.7z -o\7zout
cd\7zout
for %%f in ( *.sql) do mysql ^< %%f

Предположения, которые я сделал:

  • 7ztemp - это каталог, в который загружается файл, и не содержащий других файлов.
  • 7zout - это каталог, в который извлекается файл 7z. Я удаляю существующие файлы в 7zout перед распаковкой архива
0

Если в папке только один файл, вы можете использовать DIR /B для просмотра содержимого.

Единственной записью будет файл, который был распакован.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .