答案1
您需要使用7z x archive.zip
完整路径进行提取。请参阅:http://sevenzip.sourceforge.jp/chm/cmdline/commands/extract_full.htm
答案2
在 前面可能应该有一个连字符o
:
-oC:\abc
还要考虑-r
递归选项。
答案3
我必须解决类似的问题。这是我使用的代码。此脚本接收一个文件夹并解压缩所有 zip 文件(然后删除它们)。诀窍是将数据解压缩到一个特殊文件夹中。有点棘手,但确实有效……
@echo off
set SEVEN_ZIP_HOME=C:\Program Files\7-Zip
set TEMPDIR=temp
set WORKING_DIR="%1"
if "%WORKING_DIR%"=="" set WORKING_DIR=%~dp0
cd /d %WORKING_DIR%
if not exist %TEMPDIR% md %TEMPDIR%
for %%i in ("%WORKING_DIR%\*.zip") do call :unzipAndDelete "%%i"
rd %TEMPDIR%
goto :end
:unzipAndDelete
set ZIP_FILE=%~1
call :extractName %ZIP_FILE%
call "%SEVEN_ZIP_HOME%\7z.exe" e "%ZIP_FILE%" -o./%TEMPDIR%
copy .\%TEMPDIR%\*.* %FILENAME%.log
del .\%TEMPDIR%\*.* /q
del "%ZIP_FILE%"
goto :end
:extractName
set FILENAME=%~n1
goto :end
:end
答案4
请谨慎考虑-r
文档中明确指出的内容:-)
-r[-|0]
递归子目录(注意:此标志不会按照您的想法执行,请避免使用它)