batch file中的stringreplace

我们可以使用以下命令replacebatch file中的string

set str="jump over the chair" set str=%str:chair=table% 

这些线路正常工作,并将string“跳过椅子”改为“跳过桌子”。 现在我想用一些variablesreplacestring中的“椅子”,我不知道该怎么做。

 set word=table set str="jump over the chair" ?? 

有任何想法吗?

您可以使用!,但必须具有ENABLEDELAYEDEXPANSION开关组。

 setlocal ENABLEDELAYEDEXPANSION set word=table set str="jump over the chair" set str=%str:chair=!word!% 

你可以使用下面的小技巧:

 set word=table set str="jump over the chair" call set str=%%str:chair=%word%%% echo %str% 

那里的call会引起另一层可变的扩展,所以有必要引用原始的%符号,但最终都会生效。

c:> replace.bat“123def789”“def”“456”


  replace.bat 

 setlocal enabledelayedexpansion set data=%1 set search=%2 set replace=%3 set "data=!data:%search%=%replace%!" echo %data% REM Use %data% here before calling endlocal. endlocal