7zip 批处理文件不包含扩展名为什么?

7zip 批处理文件不包含扩展名为什么?

我找到了下面的批处理文件,它运行良好,但我需要代码将扩展名添加到最终的 zip 文件中。我确信这是一个简单的问题,但我已经尝试了一切。

@echo off
cd /d %~dp0
rem 7z.exe path
set sevenzip=
if "%sevenzip%"=="" if exist "%ProgramFiles(x86)%\7-zip\7z.exe" set sevenzip=%ProgramFiles(x86)%\7-zip\7z.exe
if "%sevenzip%"=="" if exist "%ProgramFiles%\7-zip\7z.exe" set sevenzip=%ProgramFiles%\7-zip\7z.exe
if "%sevenzip%"=="" echo 7-zip not found&pause&exit
echo %~dp1
echo %~x1
for %%a in (*%extension%) do "%sevenzip%" a "%%~na.zip" "%%a"
pause

答案1

问题是:%%~na.zip,应该是%%~fa.zip

简单一点,假设我的目录中有以下文件:

  • foo.en.pdf
  • 酒吧.en.pdf

在命令行上发出此命令:

for %a in (*.*) do 7z a "%~fa.zip" "%a"

这将产生两个 Zip 档案:

  • foo.en.pdf.zip
  • 酒吧.en.pdf.zip

相关内容