不好意思打擾各位先進,因小弟最近在編寫用PowerShell做檔案處理的程序中出現了問題,查詢網路資訊許久也沒查詢到理想的範例。
想請問各位先進,下方為小弟處理過並讀出的字串其中一段的內容,長度為256,無斷行,紅底值為固定值,除外隨機:
00255000120
1907172126319700014843901907171109 100 00000530000000000000000000000000000005300000003900000000000005300000000000000000000005300000000000000000000000000800 001 100000 100163870876
002551907171484390010 02311
目標:
想將上方字串中紅底的值單獨修改成99,其他的值則維持原樣並輸出。
以下為小弟的程式碼,但結果會變成字串中只要達成條件的值都會被替換掉。
$Get256.replace($Get256.substring(9,2),'99')
請教各位先進該怎麼做才好呢?煩請指點小弟一下方向,感謝各位先進。
如果說固定位置的字元要取代,
小弟有比較笨的作法,請參考:
# 範例是把固定第4/5/6字元換成 New
# 原理 把字串切成2段, 先把前半替代完成 = t2
# 結果就是 t2 + t3 (前半+後半)
$tt='1234567890123456789'
$t1=$tt.substring(0,5)
$t2=$t1.Replace($t1.substring(2,3),"New")
$t3=$tt.Remove(0,5)
$t2+$t3
固定位置的話
$old = "000000000XX0000000000"
$new = $old.remove(9, 2).insert(9,"99")
echo $old
echo $new