我使用批处理来查找表达式并将其替换为文件(改编自@MC ND)。
@echo off
setlocal enableextensions disabledelayedexpansion
set "Var1=blabla=toto"
set "Var2=replace"
set "Var3=test.bat"
for /f "delims=" %%i in ('type "%Var3%" ^& break ^> "%Var3%" ') do (
set "line=%%i"
setlocal enabledelayedexpansion
>>"%Var3%" echo(!line:%Var1%=%Var2%!
endlocal
)
但是当我尝试包含“ blabla = toto”之类的运算符的表达式时,它将无法正常工作
输入文件:
blabla=toto
我得到的结果:
toto=replace=toto
我想要的结果:
replace
有人对此有任何想法吗?
答案 0 :(得分:1)
我建议您保护自己的理智并利用powershell.exe
:
@Echo Off
Set "Var1=blabla=toto"
Set "Var2=replace"
Set "Var3=test.bat"
PowerShell -NoP "(GC '%Var3%') -Replace '%Var1%','%Var2%'|SC '%Var3%'" 2>Nul
或者考虑到您先前的问题是将三个变量作为参数:
@PowerShell -NoP "(GC '%~3') -Replace '%~1','%~2'|SC '%~3'" 2>Nul