我有一個想找到的文本,如果在適當的條件得到滿足,它將取代文本的簡單腳本:PowerShell的更換是複製結果
foreach ($line in $file){
$line.replace("â‡","+") | Out-File -FilePath $destination -Append
if ($line -eq "â‡RECORD_IDENTIFIER:"){
$line.replace("â‡RECORD_IDENTIFIER:","+RECORD_IDENTIFIER: A") | Out-File -FilePath $destination -Append
}
if ($line -eq "â‡END_TAG"){
$line.replace("â‡END_TAG","+END_TAG;") | Out-File -FilePath $destination -Append
}
但結果是這樣的:
+START_TAG:
+DATA_FILE_(DATE/TIME):2017-02-13T13:44:44.489-08:00
+RECORD_IDENTIFIER:
+RECORD_IDENTIFIER: A
+CLIENT_NUM:8802
+SOLOMON_ID:TRUG01
我只想讓它產生一個RECORD_IDENTIFIER。
你有'$ line.replace(「‡」,「+」)''爲記錄行運行。那麼你的if也會激發記錄標識符。由於'$ line'仍然是'‡RECORD_IDENTIFIER:' – Matt
好吧,我試過這樣的: 'foreach($ line in $ file){ $ line.replace(「‡‡」,「+」) | Out-File -FilePath $ destination -Append if($ line -eq「+ RECORD_IDENTIFIER:」){line_replace(「+ RECORD_IDENTIFIER:」,「+ RECORD_IDENTIFIER:A」)| Out-File -FilePath $ destination -Append } if($ line -eq「+ END_TAG」){ $ line.replace(「+ END_TAG」,「+ END_TAG;」)| Out-File -FilePath $ destination -Append } }' ....但那也行不通。 –