如何通过批处理脚本确定从 zip 存档中提取的文件的名称

如何通过批处理脚本确定从 zip 存档中提取的文件的名称

背景

我在 Windows XP 上有一个批处理文件,它接受一个参数:使用以下方法创建的 zip 文件名7-zip

该文件包含一个单个 MySQL 备份文件:backup.sql

我想根据此 zip 文件恢复数据库。首先,我将其解压到一个临时目录中,如下所示:

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

我想要有这样的东西(在哪里extracted_file_namebackup.sql

path_to_mysql\mysql < extracted_file_name

问题:

我如何找出所提取文件的名称(即backup.sql)?

extracted_file_name如果我不知道 zip 文件中的文件名,我应该提供什么作为输入?

答案1

您可以创建一个包含以下步骤的批处理文件。

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

我做出的假设:

  • 7ztemp是文件下载到的目录,不包含其他文件
  • 7zout是 7z 文件解压到的目录。我在7zout解压档案之前删除了现有文件

答案2

如果文件夹中只有一个文件,那么您可以使用它DIR /B来列出内容。

唯一的条目是已解压缩的文件。

相关内容