PowerShell: ◆Zipファイル(圧縮ファイル)を作る(改)で作ったサンプルを基に実際にファルのバックアップ処理を行ってみたのだが、なんとなく動きが怪しい。
ファイルに排他がかかっていたり、出来上がったZipファイルがヘッダーのみだったりと動作が安定しない。
色々と試行錯誤し状況から考えるに、どうもこのCopyHereメソッドは非同期で動いているんじゃないかしらん?と思い始めた。
ネットを調べると案の定、同じ現象に遭遇している人がちらほら居て、やはり非同期動作のようだ。(圧縮は非同期、解凍は同期とのことらしい)
そこで、圧縮後に行っていた処理を止めてCopyHereが最終処理になるよう修正してみた。
ISE環境でテストしてOKだったのでタスクスケジューラに登録して運用したところ、やはりうまくいかない。
ん~、そうかCopyHereが終わる前にプロセスが終わってしまうのねん・・・。
また、ネットで調べてみると以下のスクリプトが公開されていた。
ZIP.PS1の詳細情報 : Vector ソフトを探す!
汎用的に使うのであればこれを使わせていただくのが良さそうだ。
私的には、そこまでではない(スケジューラタスクなので時間が掛かっても問題ない)ので単純にCopyHereの後にSleepを噛ませて回避した。
0 件のコメント:
コメントを投稿