利用した方法がありました。ZIPファイルを作る方法が記載されていました。PowerShellのプロンプトから実行すると、サブディレクトリ内のファイルまで含めて、問題なくZIP圧縮できるのですが、バッチファイルから当該スクリプトを呼び出すと、サブディレクトリの最初の1個のファイルだけがZIP圧縮されるか、あるいは、空のZIPファイルができるという現象にぶつかりました。使った方法では、複数のファイルやフォルダを圧縮する際に、圧縮がおわったら、次の圧縮を始める、という”同期的な”動作ができないんだそうです。いうメソッドが開始されるとすぐに帰ってきてしまうのだそうです。500ミリ秒の待ち時間を入れている。この待ち時間が足りないと、2番目以降に始まった圧縮ファイルをZIPの中に入れることができなくて、意味不明な名前のバイナリファイルができあがる。してやると、すべてのファイルが正しくZIP圧縮されました。圧縮に要する時間なんて、ファイル数はもちろん変化するし、マシン・スペックや、他のプロセスの動作状況によっても変わるから、例え、10秒の待ち時間を入れたとしたって、安全じゃない。バッチファイルはあきらめて、すべてをPowerShellで書くかなぁ〜。PowerShellでZIP圧縮/展開する吉岡さんのアルゴリズムは、待ち時間を入れるのではなく、ZIPファイルの中のファイル数を比較して、次の圧縮処理を始める。