正在尝试从zip powershell中提取不包括.inf的文件

正在尝试从zip powershell中提取不包括.inf的文件,powershell,zip,Powershell,Zip,参考上述链接,powershell脚本仅用于提取.sql文件 有没有一种方法可以扭转这种情况,因此它会从Zip文件中提取除.Inf文件之外的所有内容 任何帮助都将不胜感激,因为我的powershell技能是无与伦比的 $shell = New-Object -COM 'Shell.Application' $zipfile = 'C:\Powershell\From here\1-5' $destination = 'C:\Powershell\To Here' $zip = $she

参考上述链接,powershell脚本仅用于提取.sql文件

有没有一种方法可以扭转这种情况,因此它会从Zip文件中提取除.Inf文件之外的所有内容

任何帮助都将不胜感激,因为我的powershell技能是无与伦比的

$shell = New-Object -COM 'Shell.Application'

$zipfile     = 'C:\Powershell\From here\1-5'
$destination = 'C:\Powershell\To Here'
$zip = $shell.NameSpace($zipfile) 

$zip.Items() | ? { $_.Path -notlike '*.inf' } | % {
  $shell.NameSpace($destination).CopyHere($_)
}

如果您发布了代码,这会很有帮助,但一般来说,您可以使用诸如
-notlike
-notmatch
之类的运算符来实现您想要的操作。

代码现在在上面。它会返回一个错误,声明“您无法对空值表达式调用方法”。@user3586898那么,zip文件的路径缺少扩展名,这就是$zip为空的原因,路径应该类似于
$zipfile=“C:\powershell\from here\1-5.zip”
好的,这样工作。谢谢你。我想您不知道如何使它扫描所有目录,而不是指定文件夹?@user3586898如果它有效,请接受答案,对于第二个问题,我建议您检查
Get Childitem
cmdlet(这里有一篇文章解释了基本用法:)完整的文件名是什么
$zipfile
似乎不是有效zip文件的路径。在C中,当它位于名为“Powershell”的普通文件夹中时,它们的设置方式是:然后在另一个名为“From Here”的普通文件夹中,然后在其中有三个名为“1-5”、“6-10”和“11-15”的zip文件夹。然后,在每个文件夹中,还有另外5个zip文件夹,相应地标记为1-15。以及2.inf文件。在每个最终zip文件夹中都有一个文本文件。