Я хочу создать zip-файл в powershell, добавить элементы в zip-файл, а затем получить сжатое содержимое этого zip-файла в байтах сразу после создания zip-файла в том же scipt. Проблема в том, что не похоже, что zip-приложение записало свое содержимое в файловую систему. Как закрыть / очистить zip-приложение, чтобы следующий оператор powershell мог получить доступ к вновь созданному zip-файлу?
Пример:
new-item -type File test.zip -force
$zip = ( get-item test.zip ).fullname
$app = new-object -com shell.application
$folder = $app.namespace( $zip )
$item = new-item file.txt -itemtype file -value "Mooo" -force
$folder.copyhere( $item.fullname )
dir test.zip # <---- Empty test.zip file
Get-Content -Encoding byte $zip | echo # <-- nothing echoed
"dir test.zip" показывает zip-файл без содержимого, поэтому Get-Content ничего не возвращает.
Обратите внимание, что это, похоже, проблема с асинхронным поведением действия copyhere. Если я буду спать после строки копирования, почтовый файл станет заполненным. Однако я не знаю, как долго нужно спать, и не хочу откладывать обработку.
Большое спасибо заранее!