2017-10-10 11 views
-1

を使用して解凍することができません -私はコマンド以下でPowerShellを使用して解凍しようとしていますPowerShellの

powershell.exe -nologo -noprofile -command "& { Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory('E:\test.zip', 'E:\'); }" 

私はアーカイブの解凍したものが表示されないログ

の下
'E:\test1.txt' 
already exists." 
At line:1 char:53 
+ & { Add-Type -A 'System.IO.Compression.FileSystem'; 
[IO.Compression.ZipFile]::Ex ... 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
~~~ 
    + CategoryInfo   : NotSpecified: (:) [], MethodInvocationException 
    + FullyQualifiedErrorId : IOException 

=============================== 

を取得します。

アップデート1

E:\ test1.txtというのは、すでに先に存在します。コマンドを変更してファイルを上書きする方法。

アップデート2

利用できるのPowerShellのバージョンは、あなたがそのメソッドを持つファイルを上書きすることはできませんExpand-Archive

+1

私の問題を解決何ですか? – ArcSet

+0

はい、E:\ test1.txtが存在します。解凍中にこのファイルを上書きします。 – Apurv

+0

それはあなたの質問でなければなりません....私はどのようにファイルを解凍してファイルを上書きするのですか?私はあなたの質問を編集する必要があると思います – ArcSet

答えて

2

をサポートしていません。あなたはthe documentation for ZipFileExtensions.ExtractToDirectory(source, destinationDirectoryName)を読んでする必要があります。

この方法は destinationDirectoryNameで指定されたディレクトリを作成します。 宛先ディレクトリがすでに存在する場合、このメソッドは上書きしません。 IOExceptionをスローします 例外です。この方法では、zipアーカイブの 階層を反映するサブディレクトリも作成されます。抽出中にエラーが発生すると、 アーカイブは部分的に抽出されたままになります。抽出された各ファイルは、 destinationDirectoryNameで指定されたディレクトリと同じ相対パスを持つ が、ソースエントリとしてアーカイブのルートに存在します。

を上書きする場合は、ファイルを一時フォルダに抽出してから、目的の場所にコピー/移動する必要があります。このコードはテストされていないことを

do { 
    $TempFolder = Join-Path -Path $([System.IO.Path]::GetTempPath()) -ChildPath $([System.IO.Path]::GetRandomFileName()); 
} while ((Test-Path -Path $TempFolder)); 

mkdir $TempFolder | Out-Null; 

[IO.Compression.ZipFile]::ExtractToDirectory('E:\test.zip',$TempFolder); 

Get-ChildItem -Path $TempFolder -Recurse | Move-Item -Destination 'E:\' -Force; 

rmdir $TempFolder; 

注:

のようなものを試してみてください。 \ test1.txtというのは、すでに存在している:以下

+0

アイデアありがとう。一時フォルダに解凍し、コピー先にコピーし、一時フォルダを削除する簡単なコマンドを書いた。 – Apurv

0

はEを行い

md E:\temp 
move E:\test.zip  E:\temp 
powershell.exe -nologo -noprofile -command "& { Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory('E:\temp\test.zip', 'E:\temp\'); }" 
del E:\temp\test.zip 
move /Y E:\temp\* E:\ 
rd E:\temp 
関連する問題