mgt*_*s99 24
您可以将删除过程简化为一行.例如,如果我有这样的字符串:
set string=hello!
Run Code Online (Sandbox Code Playgroud)
我想删除"!" 在其中,我可以做到
set string=%string:!=%
Run Code Online (Sandbox Code Playgroud)
该字符串现在将具有值"hello"
而不是"hello!"
编辑:正如jeb在评论中指出的那样,你无法"*"
使用这种方法替换.这是因为*
是批处理文件模式匹配的通配符(这里有精彩的解释).我在发布这个答案时并不知道这个,因为我假设这个替换方法适用于所有输入字符串.如果你特别需要更换*
,我建议按照magoo的回答.否则,我将为那些需要通用,简短,单线程解决方案来批量替换字符串的人保留这个答案.
@ECHO OFF
SETLOCAL
SET mystring=*10.31.*2.*65
:deaster
FOR /f "tokens=1* delims=*" %%i IN ("%mystring%") DO (
SET mystring=%%j
IF DEFINED mystring (
SET mystring=%%i%%j
GOTO deaster
) ELSE (
SET mystring=%%i
)
)
ECHO result=%mystring%=
Run Code Online (Sandbox Code Playgroud)