如果标题有点含糊,我道歉。我不确定我正在寻找的术语是什么。我目前正在将信息从XML导入PowerShell脚本。我尝试了两种方法,一种不返回任何数据,另一种方式带有额外的字符。它需要在Windows 7中使用PS v2。
如果我尝试以这种方式将信息放入变量中,则变量为空:
$applist = $UninstallXML.Uninstall.HP.App.Search
如果我尝试这种方式,我会得到正确的列表,但它带有额外的字符
$applist = $UninstallXML.Uninstall.HP.App | Select Search
回来......
@(Search=*Bing*)
@(Search=*Evernote*)
@(Search=*Energy*Star*)
etc...
如何删除其他所有内容,以便它只是搜索值列表?
更新:
如果它对任何事情都有帮助,那么这里就是我正在做的事情的全貌。
[xml]$UninstallXML = Get-Content "$dir\Files\Uninstall.xml"
$applist = $UninstallXML.Uninstall.HP.App | Select Search
ForEach ($prog in $applist) {
$app = Get-WmiObject -Class Win32_Product | where { $_.Name -like "$prog" }
If ($app.IdentifyingNumber -ne $null) {
$index = [array]::IndexOf($applist,$prog)
$name = $UninstallXML.Uninstall.HP.App[$index] | Select Name
$logbox.Items.Add(" Uninstalled $($name)")
start-process -filepath "msiexec.exe" -ArgumentList "/x $($app.IdentifyingNumber) /passive /norestart" -wait
" Uninstalled $($name)" >> $logfile
} # End If
} # End ForEach
Get-WmiObject行没有找到任何内容,因为它有额外的信息,没有匹配的程序名,或者没有要检查的列表。
感谢。
答案 0 :(得分:1)
看起来我得到了它... ...
$ applist = $ UninstallXML.Uninstall.HP.App |选择-expandproperty搜索
答案 1 :(得分:0)
$applist = ($UninstallXML.Uninstall.HP.App | Select Search).search