gpt4 book ai didi

string - 批处理文件 : How to replace "=" (equal signs) and a string variable?

转载 作者:行者123 更新时间:2023-12-04 17:55:08 26 4
gpt4 key购买 nike

除了SED,等号怎么替换?
以及如何在字符串替换中使用字符串变量?

考虑这个例子:

For /F "tokens=*" %%B IN (test.txt) DO (
SETLOCAL ENABLEDELAYEDEXPANSION
SET t=is
SET old=%%B
SET new=!old:t=!
ECHO !new!

ENDLOCAL
)

:: SET new=!old:==!

两个问题:

首先,我不能在 !:=! 中使用变量 %t%。
   SET t=is
SET old=%%B
SET new=!old:t=!

二、不能替换命令行中的等号
   SET new=!old:==!

最佳答案

我自己刚刚为此创建了一个简单的解决方案,也许它可以帮助某人。

缺点(或优点,取决于您想要做什么)是多个等号一个接一个地处理,就像一个等号一样。 (例如:“str==ing”给出与“str=ing”相同的输出)

@echo off
set "x=this is=an test="
echo x=%x%

call :replaceEqualSign in x with _
echo x=%x%

pause&exit


:replaceEqualSign in <variable> with <newString>
setlocal enableDelayedExpansion

set "_s=!%~2!#"
set "_r="

:_replaceEqualSign
for /F "tokens=1* delims==" %%A in ("%_s%") do (
if not defined _r ( set "_r=%%A" ) else ( set "_r=%_r%%~4%%A" )
set "_s=%%B"
)
if defined _s goto _replaceEqualSign

endlocal&set "%~2=%_r:~0,-1%"
exit /B

如您所见,您可以像这样使用函数:
call :replaceEqualSign in variableName with newString

关于string - 批处理文件 : How to replace "=" (equal signs) and a string variable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9556676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com