Многократный выпуск - PullRequest
       1

Многократный выпуск

0 голосов
/ 13 июня 2018
$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_ECOLE>", $_.NOM_ECOLE).
Replace("<ADDR_FW_LAN>", $_.ADDR_FW_LAN).

Приведенный выше код выдает мне ошибку типа

"."является недействительным токеном

, аналогичным ` вместо ..

1 Ответ

0 голосов
/ 13 июня 2018

Самый простой способ сделать его более читабельным - это добавить пробел.Положите каждый -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

Если вы хотите пойти дальше, поместите подстановки в массив и замените их в цикле,Это наиболее полезно, если вы делаете аналогичные замены во многих местах.

$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
}    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...