组合多个powershell命令

组合多个powershell命令,powershell,windows-10,Powershell,Windows 10,我正在尝试删除Windows 10附带的一些多余应用程序,目前正在使用以下命令,例如,如果我想删除3D Builder,我将使用: Get-AppxPackage *3dbuilder* | Remove-AppxPackage 类似地,如果我需要删除其他应用程序,我需要继续重用上面的命令来替换应用程序名。有没有一种方法可以用一个命令删除多个应用程序?我不想编写powershell脚本,因为我需要设置执行策略 另一个选项是如下所示使用,但是,我想看看我删除了什么 Get-AppxPackage

我正在尝试删除Windows 10附带的一些多余应用程序,目前正在使用以下命令,例如,如果我想删除3D Builder,我将使用:

Get-AppxPackage *3dbuilder* | Remove-AppxPackage
类似地,如果我需要删除其他应用程序,我需要继续重用上面的命令来替换应用程序名。有没有一种方法可以用一个命令删除多个应用程序?我不想编写powershell脚本,因为我需要设置执行策略

另一个选项是如下所示使用,但是,我想看看我删除了什么

Get-AppxPackage -AllUsers | Remove-AppxPackage

根据您的描述,我将对包名使用正则表达式匹配:

首先,运行此命令以验证要删除的内容:

Get-AppXPackage | Where-Object { $_.Name -imatch "(3dbuilder|package2|package3)$" }  | Remove-AppxPackage -WhatIf
然后,删除-WhatIf以实际运行remove AppXPackage

我上面展示的正则表达式本质上是以匹配结束的。它查找名称以“3dbuilder”、“package2”或“package3”结尾的包。可以从列表中添加或删除包名称,使用管道符号将它们分隔开。这是因为在包名称前面似乎有一些您可能不想输入的随机字符


正则表达式可以很好地匹配,所以一定要首先使用-WhatIf运行,以验证您只删除了您想要的

-imatch
在这里是多余的,但它说明了正在发生的事情。如果您不关心前面的内容,那么可以省略字符串的
^.*
部分。此外,也没有必要避开美元尾随符号。没有它它也行。我在上面编辑了我的代码。好建议。我是一个习惯动物,所以我总是避开美元符号。