【问题标题】:Wildcards in PowershellPowershell 中的通配符
【发布时间】:2021-06-25 20:36:06
【问题描述】:

我是 Powershell 的新手,正在尝试合并通配符。我正在尝试将通配符添加到该行

Add-AppxPackage –DisableDevelopmentMode -register "C:\Program Files\WindowsApps\Microsoft.MicrosoftStickyNotes_3.8.8.0_x64__8wekyb3d8bbwe\appxmanifest.xml"

这可以在 PC 上运行并安装 Sticky Notes。但是,StickyNotes 的版本总是在变化,如果当前版本不是 3.8.8.0,则运行该行会失败。有没有办法可以添加通配符让它安装任何版本的 StickyNotes?我已经尝试过诸如

Add-AppxPackage –DisableDevelopmentMode -register "C:\Program Files\WindowsApps\Microsoft.MicrosoftStickyNotes*\appxmanifest.xml"

我们正在使用它为我们的员工安装 Microsoft 应用程序,而无需打开 Microsoft Store,因为我们已将其屏蔽。 感谢您的帮助。

【问题讨论】:

  • 先尝试使用Resolve-Path确定路径?类似$AppPath = resolve-path "C:\Program Files\WindowsApps\Microsoft.MicrosoftStickyNotes*x64*\appxmanifest.xml"
  • 我打赌Get-AppxPackage 允许您使用通配符搜索包;-)

标签: powershell wildcard


【解决方案1】:

给猫剥皮的方法有一千种,我就是这样做的:

#grab all folders
$versionsFull=dir "C:\Program Files\WindowsApps\"
$VersionsNumberOnly=@()
#isolate the version numbers
foreach($v in $versionsFull){
$VersionsNumberOnly+=$v.name.split("_")[1]
}
#find the newest
$newestVersion=$VersionsNumberOnly|sort -Descending|Select -first 1
$newestVersion
#add to path
Add-AppxPackage –DisableDevelopmentMode -register "C:\Program Files\WindowsApps\Microsoft.MicrosoftStickyNotes_$newestversion`_x64__8wekyb3d8bbwe\appxmanifest.xml"

【讨论】:

  • 感谢您的帮助!我能够得到这个工作。我试图在一个命令中运行所有内容而不是将其分解,但这让它变得更加清晰。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-07
  • 1970-01-01
相关资源
最近更新 更多