7-zip不提供此功能。你必須自己做。 這是一個快速演示。相對文件路徑(源文件中爲.7z)是第一個參數。其他參數是7-Zip存檔(來源,然後dest)。這個解決方案
SETLOCAL
SET "FILE_TO_MOVE=%~1"
SET "SOURCE_ARCHIVE=%~2"
SET "TARGET_ARCHIVE=%~3"
ECHO File: %FILE_TO_MOVE%
ECHO Source: %SOURCE_ARCHIVE%
ECHO Target: %TARGET_ARCHIVE%
SET "TEMP_DIR=%TEMP%\7z_temp_%RANDOM%"
IF EXIST "%TEMP_DIR%" RMDIR /S /Q "%TEMP_DIR%"
MKDIR "%TEMP_DIR%"
@ECHO Before copy...
7z.exe l "%TARGET_ARCHIVE%
7z.exe x -o"%TEMP_DIR%" "%SOURCE_ARCHIVE%" "%FILE_TO_MOVE%"
pushd "%TEMP_DIR%"
7z.exe a "%TARGET_ARCHIVE%" "%FILE_TO_MOVE%"
popd
RMDIR /S /Q "%TEMP_DIR%"
@ECHO After copy...
7z.exe l "%TARGET_ARCHIVE%
一個特殊之處是,則目標將可能需要一個完全合格的路徑(因爲你指的是之前改變到不同的目錄)。由於我不知道你打算如何執行這個操作,所以我不能提出一個更好的解決方案來指定絕對路徑。
我很抱歉,但你不是很清楚,'a'添加文件到7z文件,所以它應該工作。如果它沒有提供更多的細節什麼不起作用 – nrathaus
這聽起來像你想從一個檔案(.7z)移動到另一個(.7z)文件。那是對的嗎?如果是這樣,我不認爲7-Zip在本地執行該操作。看來7-Zip一次只能在一個存檔上運行。我懷疑WinRAR似乎只是隱藏了將文件解壓到臨時位置,然後將其添加到另一個壓縮文件,然後將其刪除的事實。但是,這不應該太難以自動化。 – mojo
是的,這是我想要做的:將文件從一個存檔移動到另一個(至少在沒有臨時提取的內存中)。但正如下面所說,7zip本身不可能。 – OranginaRouge