[解決済み】Powershellでファイルをunzipする方法は?
2022-04-17 01:51:17
質問
私は
.zip
ファイルを作成し、Powershell を使用してその内容全体を解凍する必要があります。私はこれをやっていますが、うまくいかないようです。
$shell = New-Object -ComObject shell.application
$zip = $shell.NameSpace("C:\a.zip")
MkDir("C:\a")
foreach ($item in $zip.items()) {
$shell.Namespace("C:\a").CopyHere($item)
}
何が問題なのか?ディレクトリが
C:\a
はまだ空のままです。
どのように解決するのですか?
を使った簡単な方法を紹介します。 ExtractToDirectory から System.IO.Compression.ZipFile :
Add-Type -AssemblyName System.IO.Compression.FileSystem
function Unzip
{
param([string]$zipfile, [string]$outpath)
[System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, $outpath)
}
Unzip "C:\a.zip" "C:\a"
ターゲットフォルダが存在しない場合、ExtractToDirectoryはそれを作成することに注意してください。その他の注意点
- 既存のファイルは上書きされず、代わりにIOExceptionが発生します。
- このメソッドには、Windows Vista以降で利用可能な.NET Framework 4.5以上が必要です。
- 相対パスは、現在の作業ディレクトリに基づいて解決されません。 PowerShellの.NETオブジェクトはなぜカレントディレクトリを使用しないのですか?
こちらもご覧ください。
- ファイルの圧縮・解凍方法 (Microsoft Docs)
関連
-
[解決済み] PowerShellでファイルをダウンロードする
-
[解決済み] PowerShellを使用してSFTPにファイルをアップロードする
-
[解決済み] インストールされたPowerShellのバージョンを確認する
-
[解決済み] PowerShellで「このシステムではスクリプトの実行が無効になっています」と言われる。
-
[解決済み] PowerShellでコードをコメントアウトする方法とは?
-
[解決済み] Windows PowerShellの環境変数を設定する
-
[解決済み] PowerShellで文字列と変数を連結する方法は?
-
[解決済み] PowerShellでコマンドライン引数を処理する方法
-
[解決済み] PowerShellでスクリプトを終了させる
-
[解決済み】PowerShellスクリプトを実行する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】PowerShellの関数で変数をインクリメントする
-
[解決済み] PowerShellで"%"(パーセント)は何をするのですか?
-
[解決済み] Get-ChildItem -force で My Documents フォルダとその他の接続ポイントに "Access Denied" を報告する。
-
[解決済み] Get-ADUserとフィルタを含むForEach-Objectループ
-
[解決済み] Powershell - 空のパイプ要素は許可されません。
-
[解決済み] PowerShellで環境変数をコンソールに出力する方法は?
-
[解決済み] PowerShellでファイルを一行ずつ読み込む
-
[解決済み] PowerShellと-contains演算子
-
[解決済み] PowerShellでファイルをダウンロードする
-
[解決済み] powershell内でキーストロークを実行する方法は?