背景
我在 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 文件中的文件名,我应该提供什么作为输入?
答案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
来列出内容。
唯一的条目是已解压缩的文件。