各位先進不好意思,小弟正在編輯一個字串替換的BAT檔案,但遇到了點問題麻請各位先進幫幫小弟解惑,感恩!!
文字檔內容(test.txt)
SET VERSION=XXXXXXXX
SET CHK_VERSION1=XXXXXXXX
SET CHK_VERSION2=XXXXXXXX
目標:
將VERSION=XXXXXXXX的X改成它值。
將CHK_VERSION2=XXXXXXXX的X改成它值(跟VERSION=XXXXXXXX的X值為不同值)
程式碼
@echo off&setlocal enabledelayedexpansion
for /f "eol=* tokens=*" %%i in (test.txt) do (
set str=%%i
set "str=!str:VERSION=XXXXXXXX=VERSION=12345678!"
echo !str!>>temp.txt
)
問題:
無法取代成想要的結果
以上,煩請先進們協助或提供一些關鍵字給小弟,萬分感謝。
請參考
假設:D:\tmp\txt 裡頭有許多TXT檔案
目的:變更所有TXT檔案中,含有"1"的內容,改成"2"
作法:
1.準備一個r.ps1 (用記事本貼上另存為ps1副檔名即可)
Get-ChildItem d:\tmp\txt -Filter *.txt | Foreach-Object{
(Get-Content $.FullName) |
Foreach-Object {$ -replace "1", "2"} |
Set-Content $_.FullName
}
2.在cmd下執行
PowerShell -ExecutionPolicy Bypass -File r.ps1
你本意是 "VERSION=XXXXXXXX" 取代成 "VERSION=12345678" 吧
加個跳脫字元看看set "str=!str:VERSION^=XXXXXXXX=VERSION^=12345678!"