質問: $verbosepreferencebak
回答: 手動で一時停止すると正常に機能したため、「適切な」解決策が見つかるまで使用できる一時的なハックを次に示します。一般に、このような「遅延」と「タイマー」を使用することは、ミッションクリティカルなことに対して行うことではありません。そうは言っても、より良い答えが見つかるまで、これを実行して、それが機能するかどうかを確認できます。 プロセスを手動で数回実行し、通常zipプロセスが完了するまでにかかる時間を秒単位で実行します。データベースのサイズが一般的に毎日同じである場合、完了するまでにかかる時間はおそらく平均してほぼ同じ時間になります。 手動テストで平均60秒かかるとしましょう。 「通常の」日には通常の4倍の時間がかからない可能性があるため、控えめにして4倍程度にします。これで、240秒(平均60秒×4)になります。 したがって、今のところ、「続行するには任意のキーを押す」コードを含める代わりに、コード内のdelayに置き換えて、zipが終了するのを待つためにスクリプトを少しだけハングさせます。これには、タイミングを微調整して推測する必要があり、適切なアプローチではありません。しかし、ピンチで... とにかく、試してみたい場合は、コードを次のように変更してください。 powershell v1を使用している場合:foreach($file in $input) { $zippackage.copyhere($file.fullname) } [system.threading.thread]::sleep(240000) powershell v2を使用している場合は、代わりにsleepコマンドレットを使用してください。foreach($file in $input) { $zippackage.copyhere($file.fullname) } start-sleep -second 240 v1で時間を混乱させるには、ミリ秒を使用します。 (つまり、10秒= 10000)v2で時間を混乱させるには、秒を使用します。 (240 = 240秒)私はこれを本番環境で使用することは決してありませんが、それほど大したことではなく、99%の確率で問題なく動作することが証明されていれば、十分かもしれません。