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