25

我正在尝试用另一个字符替换文本字符串中一个字符的所有实例,但我没有成功。

假设文本是

cat rat mat fat

我希望脚本替换所有t's to p's

cap rap map fap

我所拥有的是以下内容,但它似乎对我没什么用。

SET /P MY_TEXT=ENTER TEXT:

SET T2P=P

SET NEW_TEXT=%TEXT=:T!T2P!%

MSG * %NEW_TEXT%
4

3 回答 3

23

Try this

setlocal 
set string=cat rat mat fat
set string=%string:t=p%
于 2016-07-20T06:50:55.263 回答
14

你把=标志放错地方了。尝试:

setlocal enabledelayedexpansion
set /P MY_TEXT=ENTER TEXT:
SET T2P=P
set NEW_TEXT=%MY_TEXT:T=!T2P!%
MSG * %NEW_TEXT%

您也可以反过来进行扩展,即

set NEW_TEXT=!MY_TEXT:T=%T2P%!
于 2012-11-20T09:28:35.980 回答
-3

你可以像这样使用'sed':

echo "cat rat mat fat" | sed 's/t/p/g'  # outputs "cap rap map fap"
于 2012-11-20T09:27:19.560 回答