批處理,如何替換特殊字符后的子串。
@echo off
set var1=abc_123
set var2=%var1:*_=%
echo %var2%
set var1=abc_123
set var3=%var1:_*=%
echo %var3%
輸出:
123
abc_123
在set var2=%var1:*_=%,*匹配abc,但在set var3=%var1:_*=%它不起作用!
這兩種用法有什么區別?我怎樣才能用*或什么東西來代替_123
uj5u.com熱心網友回復:
使用搜索/替換語法是不可能的,因為僅當它是搜索運算式中的第一個字符時才將星號用作通配符,在任何其他位置它被視為普通字符。
但是對于單個字符,可以使用 FOR /F 回圈來完成。
它通過分隔符將文本拆分為標記。
FOR /F "tokens=1,* delims=_" %%L in ("%var1%") DO (
set var3=%%L
)
echo %var3%
uj5u.com熱心網友回復:
如果您正在尋找更簡單的方法,那么也許這就是您要實作的目標:
Set "var1=abc_123"
Echo(%var1%
Set "var2=%var1:*_=%"
Echo(%var2%
Set "var3=%var1:_="&:"%"
Echo(%var3%
更簡單的當然只是指使用擴展和替換,而不是對技術的理解。如果您想了解有關該技術的更多資訊,請查看此外部站點執行緒中的示例。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/392211.html
