如何将变量与字符串连接起来

时间:2018-02-28 16:30:57

标签: powershell

我刚刚开始使用powershell,我想编写基本的shell脚本来删除Windows 10默认应用程序,如XBOX,Instagram等,这就是我的脚本的样子。

$appXPackage = "Get-AppXPackage -Name"
$appXPackage + ' Microsoft.XboxGameCallableUI' | Remove-AppxPackage

出现此错误:

Remove-AppxPackage : Deployment failed with HRESULT: 0x80073CFA, Removal failed. Please contact your software vendor. (
Exception from HRESULT: 0x80073CFA)
Package Manager aborted the Remove operation because an invalid argument was passed: Get-AppXPackage -Name Microsoft.Xb
oxGameCallableUI.
NOTE: For additional information, look for [ActivityId] eb445625-b0a9-0002-d590-44eba9b0d301 in the Event Log or use th
e command line Get-AppxLog -ActivityID eb445625-b0a9-0002-d590-44eba9b0d301
At C:\Users\Viktor\Desktop\Remove Windows 10 Apps.ps1:11 char:50
+ $appXPackage + ' Microsoft.XboxGameCallableUI' | Remove-AppxPackage
+                                                  ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : WriteError: (Get-AppXPackage...xGameCallableUI:String) [Remove-AppxPackage], IOException
    + FullyQualifiedErrorId : DeploymentError,Microsoft.Windows.Appx.PackageManager.Commands.RemoveAppxPackageCommand

修改 我怎样才能在数组中编写应用程序名称并通过它进行循环

3 个答案:

答案 0 :(得分:2)

跳过尝试将半个语句存储在字符串中的中间步骤:

$PackageName = 'Microsoft.XboxGameCallableUI' 
Get-AppxPackage -Name $PackageName | Remove-AppxPackage

答案 1 :(得分:0)

这样您就可以定义要删除的应用程序包。

$applicationPackages = "Application.Name","Application2.Name","Application3.Name"
Foreach($application in $applicationPackages){
    Remove-AppxPackage -Name $application
}

如果您知道可以执行此操作的部分名称来创建数组

,则更进一步
$applicationPackages = Get-AppxPackage | where-object {$_.Name -match "someapplication*|someotherApplication*"}

答案 2 :(得分:-1)

您正在尝试创建Windows 10映像。您正在运行sysprep,而您正在使用默认程序遇到这个问题? ...微软。

这就是你要问的问题。

$list_of_packages = @('Microsoft.XboxGameCallableUI', '...', '...')

foreach ($package_name in $list_of_packages) {
  Remove-AppXPackage -Name $package_name
}

但是,让我们跳过去。如果你还没有......你可能会尝试以下方法。

祝你好运。