我找到了下面的批处理文件,它运行良好,但我需要代码将扩展名添加到最终的 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