在 Foreach 中加载函数数组/根据环境文件向主机文件添加条目
Load array of functions inside a Foreach / add entry to hostfile based on a environment file
这可能不是一个好标题,但我不知道如何解释。
我正在尝试根据环境文件将主机条目添加到主机文件,我已经将“carbon”框架导入到我的环境中。输出似乎是正确的,但不是 "running"。当我手动尝试输入其中一个条目时,一切正常。
Set-HostsEntry -IPAddress 127.0.0.1 -HostName 'portal.sp2013dev.no' -Description 'Portal'
问题是它只在控制台写了一行,但它没有执行!
环境。ps1
`####### INSIDE HOSTFILE I GOT A ARRAY THAT I WANT TO PASTE INTO THE OTHER FILE
#HostFile
$hostFileEntry = @("Set-HostsEntry -IPAddress 127.0.0.1 -HostName 'portal.sp2013dev.no' -Description 'Portal'" ,
"Set-HostsEntry -IPAddress 127.0.0.1 -HostName 'mysite.sp2013dev.no' -Description 'Mysite'" ,
"Set-HostsEntry -IPAddress 127.0.0.1 -HostName 'tt.dev.no' -Description 'profile'")
主机文件。ps1
###############################################################################
# ADD / REMOVE HOST ENTRYS TO HOST FILE
###############################################################################
Try
{
. .\Environment.ps1
}
Catch [system.exception]
{
"Problems accessing environment file, check the file location"
"Terminating script"
Break
}
#Reset Host file
#Reset-HostsFile
#Adding host entry's to host file
Foreach ($entry in $hostFileEntry)
{
$entry
}
你需要告诉PowerShell需要执行$entry
中包含的字符串。简单的答案应该是使用 Invoke-Expression 在本地计算机上运行命令或表达式。
Foreach ($entry in $hostFileEntry)
{
Invoke-Expression $entry
}
在您将字符串发送到标准输出之前*(* FYI 输出与 ForEach($b in $a)
结构不同)。
这可能不是一个好标题,但我不知道如何解释。
我正在尝试根据环境文件将主机条目添加到主机文件,我已经将“carbon”框架导入到我的环境中。输出似乎是正确的,但不是 "running"。当我手动尝试输入其中一个条目时,一切正常。
Set-HostsEntry -IPAddress 127.0.0.1 -HostName 'portal.sp2013dev.no' -Description 'Portal'
问题是它只在控制台写了一行,但它没有执行!
环境。ps1
`####### INSIDE HOSTFILE I GOT A ARRAY THAT I WANT TO PASTE INTO THE OTHER FILE
#HostFile
$hostFileEntry = @("Set-HostsEntry -IPAddress 127.0.0.1 -HostName 'portal.sp2013dev.no' -Description 'Portal'" ,
"Set-HostsEntry -IPAddress 127.0.0.1 -HostName 'mysite.sp2013dev.no' -Description 'Mysite'" ,
"Set-HostsEntry -IPAddress 127.0.0.1 -HostName 'tt.dev.no' -Description 'profile'")
主机文件。ps1
###############################################################################
# ADD / REMOVE HOST ENTRYS TO HOST FILE
###############################################################################
Try
{
. .\Environment.ps1
}
Catch [system.exception]
{
"Problems accessing environment file, check the file location"
"Terminating script"
Break
}
#Reset Host file
#Reset-HostsFile
#Adding host entry's to host file
Foreach ($entry in $hostFileEntry)
{
$entry
}
你需要告诉PowerShell需要执行$entry
中包含的字符串。简单的答案应该是使用 Invoke-Expression 在本地计算机上运行命令或表达式。
Foreach ($entry in $hostFileEntry)
{
Invoke-Expression $entry
}
在您将字符串发送到标准输出之前*(* FYI 输出与 ForEach($b in $a)
结构不同)。