gpt4 book ai didi

Powershell - 如何在 powershell 中完成/关闭 zip 文件

转载 作者:行者123 更新时间:2023-12-04 21:22:47 26 4
gpt4 key购买 nike

我想在 powershell 中创建一个 zip 文件,将项目添加到 zip 文件中,然后在创建 zip 文件后立即在同一个 scipt 中以字节形式获取该 zip 文件的压缩内容。问题是 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 操作的异步行为的问题。如果我在 copyhere 行之后 sleep ,则 zip 文件将被填充。但是,我不知道要睡多久,也不想延迟处理。

非常感谢提前!

最佳答案

您可能需要重新考虑使用第三方库。但是,如果您必须使用 copyhere,请尝试以下操作:

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)
while($folder.Items().Item($item.Name) -Eq $null)
{
start-sleep -seconds 0.01
write-host "." -nonewline
}
dir test.zip # <---- Empty test.zip file
Get-Content -Encoding byte $zip

关于Powershell - 如何在 powershell 中完成/关闭 zip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9211244/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com