PowerShell zipファイルを同期的に
PowerShellスクリプトで、フォルダーを削除する前にフォルダーを圧縮します。次のコードを実行します(スニペットがどこにあるか覚えていません)。 function Compress-ToZip { param([string]$zipfilename) if(-not (test-path($zipfilename))) { set-content $zipfilename ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18)) (Get-ChildItem $zipfilename).IsReadOnly = $false } $shellApplication = new-object -com shell.application $zipPackage = $shellApplication.NameSpace($zipfilename) foreach($file in $input) { $zipPackage.CopyHere($file.FullName) } } このスニペットは実際にはフォルダーを圧縮しますが、非同期に圧縮します。実際、Shell.ApplicationオブジェクトのCopyHereメソッドは圧縮を開始し、その完了を待ちません。スクリプトの次のステートメントは混乱します(zipファイルのプロセスが完了していないため)。 助言がありますか?可能であれば、実行可能ファイルの追加を避け、純粋なWindows機能を維持したいと思います。 [編集]私のPS1ファイルの完全なコンテンツからDBの実際の名前を除いたもの。スクリプトの目的は、一連のSQL dbをバックアップしてから、現在の日付で名前が付けられたフォルダー内の単一パッケージにバックアップを圧縮することです。 $VerbosePreferenceBak = $VerbosePreference $VerbosePreference = "Continue" add-PSSnapin …