私はこれを試しています:
7za.exe a "C:\Disc.7z" "C:\test" -v20000000b -m0=BCJ -bd
しかし、私がすでにファイルを作成している場合はC:\Disc.7z
その後、7Zipは何も圧縮せず、次の出力を送信します。
System error:
File already exist.
私はスイッチで試しました-y
、しかし7Zipは何もしません...
ファイルを上書きするにはどうすればよいですか?
[〜#〜] update [〜#〜]
私はスイッチを試しました-aoa
しかし、それも機能しません...
問題は、-v
を使用してマルチボリュームアーカイブを作成していることです。人々は過去5年間、プログラムがマルチボリュームアーカイブを変更することを許可するように作者に要求してきましたが、彼は 計画なし この機能をすぐに実装する必要があります。 (これはオープンソースです。進取の気性のあるプログラマーがすでにやってくれることを願っています!)
7za.exe u
の代わりに7za.exe a
を使用してみてください。 1つ目は、既存のアーカイブを更新するために特に使用されます。
現在、コマンドラインスイッチでこの機能を使用する方法はありません。上書きは、アーカイブの抽出中にのみサポートされます。
この問題を回避するには、アーカイブファイルが存在する場合は、再度作成する前に削除します。これを行う1つの方法は次のとおりです。
CMD /C FOR %i IN (C:\Disc.7z.???) DO DEL %i && 7za.exe a "C:\Disc.7z" "C:\test" -v20000000b -m0=BCJ -bd
CMD /C
は、7za
コマンドがファイルごとではなく1回だけ実行されるようにします。FOR
は、各宛先アーカイブファイルを反復処理して削除します。この式は、3桁のサフィックスを持つボリュームのみを対象としていることに注意してください。もっと期待する場合は(可能かどうかはわかりませんが)、???
を*
に置き換えることができます。&&
は、最初のコマンドの後に2番目のコマンドを実行します(最初のコマンドが成功した場合)。-v
スイッチを外しても、この問題は発生しないことに気づきました。 7-Zipはアーカイブボリュームの更新をサポートしていないようです。