$FichierModifié = $Modele -replace "< NOM_ECOLE >" $_.NOM_ECOLE -replace "< ADDR_FW_LAN >", $_.ADDR_FW_LAN -replace "< ADDR_POOL_DHCP_LAN >", $_.ADDR_POOL_DHCP_LAN -replace "< ADDR_FW_WAN >", $_.ADDR_FW_WAN -replace "< ADDR_MASK_WAN >", $_.ADDR_MASK_WAN -replace "< ADDR_GW_WAN >", $_.ADDR_GW_WAN -replace "< MAC_FW >", $_.MAC_FW -replace "< PPPOE_USERNAME >", $_.PPPOE_USERNAME -replace "< PPPOE_PASSWORD >", $_.PPPOE_PASSWORD
Run Code Online (Sandbox Code Playgroud)
我想让这一行更具可读性.我尝试了很多我在这里找到的解决方案,但没有什么对我有用.
$Modele.Replace("<NOM_ECOLE>", $_.NOM_ECOLE).
Replace("<ADDR_FW_LAN>", $_.ADDR_FW_LAN).
Run Code Online (Sandbox Code Playgroud)
上面的代码给我一个错误
"" 是一个无效的令牌
同样与`
代替.
.
使其更具可读性的最简单方法是添加空格.把每个人-replace "foo","bar"
放在自己的路上.你需要在每个结尾处进行反引用,告诉PowerShell它应该被解析为一行.
$FichierModifié = $Modele `
-replace "< NOM_ECOLE >" $_.NOM_ECOLE `
-replace "< ADDR_FW_LAN >", $_.ADDR_FW_LAN `
-replace "< ADDR_POOL_DHCP_LAN >", $_.ADDR_POOL_DHCP_LAN `
-replace "< ADDR_FW_WAN >", $_.ADDR_FW_WAN `
-replace "< ADDR_MASK_WAN >", $_.ADDR_MASK_WAN `
-replace "< ADDR_GW_WAN >", $_.ADDR_GW_WAN `
-replace "< MAC_FW >", $_.MAC_FW `
-replace "< PPPOE_USERNAME >", $_.PPPOE_USERNAME `
-replace "< PPPOE_PASSWORD >", $_.PPPOE_PASSWORD
Run Code Online (Sandbox Code Playgroud)
如果您想更进一步,请将替换放在数组中并替换为循环.如果您在许多地方进行类似的替换,这将非常有用.
$replacements = @(
@{src="< NOM_ECOLE >"; target = $_.NOM_ECOLE}
@{src="< ADDR_FW_LAN >"; target = $_.ADDR_FW_LAN}
@{src="< ADDR_POOL_DHCP_LAN >"; target = $_.ADDR_POOL_DHCP_LAN}
@{src="< ADDR_FW_WAN >"; target = $_.ADDR_FW_WAN}
@{src="< ADDR_MASK_WAN >"; target = $_.ADDR_MASK_WAN}
@{src="< ADDR_GW_WAN >"; target = $_.ADDR_GW_WAN}
@{src="< MAC_FW >"; target = $_.MAC_FW}
@{src="< PPPOE_USERNAME >"; target = $_.PPPOE_USERNAME}
@{src="< PPPOE_PASSWORD >"; target = $_.PPPOE_PASSWORD}
)
$FichierModifié = $Modele
foreach ($x in $replacements) {
$FichierModifié = $FichierModifié -replace $x.src, $x.target
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
61 次 |
最近记录: |