如何循环执行For命令以安装Windows 10可选功能Powershell

更新:

因此,由于有了jw9364,我才能完成两个工作衬板的工作。但是,我要使用的名称列表很长,因此我尝试离开他的职位,创建一个多行循环,该循环将数组中的每个名称都转换为一个对象,以便我们可以下载列表中的所有软件包而不会引发错误。

据我所知,您需要获得一个多行数组对象的输出,使其看起来像两个衬里一样

string1
string2

需要看起来像

"string1","string2"

或者在我的特定情况下

"NetFx3","Netfx4-AdvSrvs"

被调用时

Enable-WindowsOptionalFeature -Online -FeatureName $Feature

所以PS的每个呼叫都像这样

Enable-WindowsOptionalFeature -Online -FeatureName NetFx3
Enable-WindowsOptionalFeature -Online -FeatureName Netfx4-AdvSrvs

我当前无法正常运行的脚本向您显示了终端中的输出(在更改为实际所需的代码之前使用Write-Host进行调试)

我没有运气获得适当的输出。我最接近的是使数组中的第一行文本正常工作,但是此后的任何行仅会产生实际的文本字符串,并且不包含Enable-WindowsOptionalFeature -Online -FeatureName,这会导致所查找的命令失败。>

以下是我的最新脚本:

$FeatureName = @"
NetFx3
NetFx4-AdvSrvs
"@

$FeatureJoin = (-Join("$FeatureName," +$FeatureName))

ForEach($Feature in $FeatureJoin){
  Write-Host "Enable-WindowsOptionalFeature -Online -FeatureName $Feature"
}

此脚本产生以下输出,显然是行不通的。

Enable-WindowsOptionalFeature -Online -FeatureName NetFx3
NetFx4-AdvSrvs,NetFx3
NetFx4-AdvSrvs

原始帖子:

我对Powershell还是陌生的,因此决定是时候从cmd.exe继续进行了某些事情了。

我正在尝试创建一个脚本来在Powershell中循环执行For命令,以安装未安装的所有可选Windows功能的预定义列表。

可安装的功能列表存储在脚本本身的$FeatureName变量中,因为我不想存储要从中调用的其他文件。

我想用此命令循环列表中的每一行(如果这是实现我的目标的正确/最佳方法)ForEach-Object Enable-WindowsOptionalFeature -Online -FeatureName [FEATURE_NAME_HERE]

我完全不确定我当前的脚本是否关闭。

这是我到目前为止所拥有的。任何帮助表示赞赏。

$FeatureName = @"
ClientForNFS-Infrastructure
FaxServicesClientPackage
IIS-ASPNET45
"@ | Split-String -Separator "`r`n" | ForEach-Object {
Enable-WindowsOptionalFeature -Online -FeatureName [$_FeatureName.text]
}
GY176984859 回答:如何循环执行For命令以安装Windows 10可选功能Powershell

这是我草拟的两行。您可以根据需要将其设置为一行,但是用这种方式阅读起来非常容易并且非常可重用。

$FeatureName = 'ClientForNFS-Infrastructure','FaxServicesClientPackage','IIS-ASPNET45'
foreach($feature in $FeatureName) {Enable-windowsoptionalfeature -online -featureName $feature}
本文链接:https://www.f2er.com/3135476.html

大家都在问