Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 多重替换问题 [代码>$FIC-FIC-FIC-FIC-FIC-FIC-FIC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-取代““,$\uu.MAC\u FW-替换“”,$.PPPOE\u用户名-替换“”,$.PPPOE\u密码_Powershell - Fatal编程技术网

Powershell 多重替换问题 [代码>$FIC-FIC-FIC-FIC-FIC-FIC-FIC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-取代““,$\uu.MAC\u FW-替换“”,$.PPPOE\u用户名-替换“”,$.PPPOE\u密码

Powershell 多重替换问题 [代码>$FIC-FIC-FIC-FIC-FIC-FIC-FIC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-MEC-取代““,$\uu.MAC\u FW-替换“”,$.PPPOE\u用户名-替换“”,$.PPPOE\u密码,powershell,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 >", $_

我想让这句话更具可读性。我在这里找到了很多解决方案,但都不管用

$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
$Modele.Replace(“,$\.NOM\u ECOLE”)。
替换(“,$\.ADDR\u FW\u LAN)。
上面的代码给了我一个错误,比如

“.”是无效的令牌


`
相同,而不是

使其更具可读性的最简单方法是添加空格。将每个
-替换为“foo”,“bar”
在其各自的行上。您需要在每个行的末尾加上一个反勾,以告知PowerShell应该将其全部解析为一行

$Modele.Replace("<NOM_ECOLE>", $_.NOM_ECOLE).
Replace("<ADDR_FW_LAN>", $_.ADDR_FW_LAN).
$FichierModifié=$Modele`
-替换“”$\u.NOM\u ECOLE`
-替换“”,$\ ADDR\u FW\u LAN`
-替换“”,$\u0.ADDR\u POOL\u DHCP\u LAN`
-替换“”,$\ ADDR\u FW\u WAN`
-替换“”,$\地址掩码\u WAN`
-替换“”,$\ ADDR\u GW\u WAN`
-替换“”,$\ MAC\u FW`
-替换“”,$\ PPPOE\u USERNAME`
-将“”替换为“$\ PPPOE\u密码”
如果你想更进一步,把替换放在一个数组中,然后在一个循环中替换。如果你在很多地方进行类似的替换,这是非常有用的

$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
$replacements=@(
@{src=“”target=$\ NOM_ECOLE}
@{src=“”目标=$\地址FW\u LAN}
@{src=“”目标=$\uu.ADDR\u POOL\u DHCP\u LAN}
@{src=“”目标=$\地址FW\u WAN}
@{src=“”目标=$\uu.ADDR\u MASK\u WAN}
@{src=“”目标=$\u0.ADDR\u GW\u WAN}
@{src=“”目标=$\ MAC_-FW}
@{src=“”目标=$\ PPPOE\u USERNAME}
@{src=“”目标=$\ PPPOE\u PASSWORD}
)
$FichierModifié=$Modele
foreach(x美元替换){
$FichierModifié=$FichierModifié-替换$x.src、$x.target
}    

目标字符串不能为空(例如,
replace(“,$\u.ADDR\u FW\u LAN)
)。你希望这能做什么?我修改了我的帖子,很抱歉,这是我第一篇对我友好的帖子。提高可读性的最简单方法是添加空格。将每个
-替换为“foo”,“bar”“
在它自己的一行上,每行末尾都有一个反勾号来表示PS,它应该被解析为一行。如果你想更进一步,把替换放在一个数组中,然后在一个循环中替换。谢谢你,它成功了!,只需在每行末尾加上一个简单的反勾号,在添加替代项时不需要括号+1,但要注意性能方面,它会增加大量开销。个人提示:我发现级联
-replace
版本更具可读性。只需看一眼就知道它做了什么,而foreach循环只需看一眼;)@利文基尔斯马科斯同意。我只会使用第二种形式,如果我在几个地方需要相同的替换集,这样就不会违反DRY。
$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
}