我的代码如下:
for / F“tokens = 1,2 delims =%0.3%”%% i in(“double a = 0.3;”)do(
设置a = %% i
设置b = %% j
)
我想要一个=“double a =”和b =“;”但是这段代码无济于事。
有谁知道如何解决这个问题?
答案 0 :(得分:1)
您发布的代码根本不起作用。
for /F "tokens=1,2 delims=%0.3%" %%i in ("double a = 0.3;") do (
%0
将替换为yourbatchfilename
,由于%" %
在环境中没有设置值,因此它将被[nothing]产生
for /F "tokens=1,2 delims=yourbatchfilename.3i in ("double a = 0.3;") do (
,毫不奇怪,这是一个语法错误。
@ECHO OFF
SETLOCAL
for /F "tokens=1,2 delims=3.0" %%i in ("double a = 0.3;") do (
set a=%%i
set b=%%j
)
ECHO first way :a=%a%+ b=%b%+
ENDLOCAL
SETLOCAL
SET "astring=double a = 0.3;"
SET "aseparator=0.3"
SET "arotorapes=3.0"
for /F "tokens=1,2 delims=%arotorapes%" %%i in ("double a = 0.3;") do (
SET a=%%i
)
CALL SET b=%%astring:*%aseparator%=%%
ECHO second way :a=%a%+ b=%b%+
ENDLOCAL
SETLOCAL
SET "astring=double a = 0.3;"
SET "aseparator=0.3"
CALL SET b=%%astring:*%aseparator%=%%
SET "c=%b%%aseparator%"
SET "a=%astring%"
:loop
IF DEFINED c SET c=%c:~0,-1%&SET a=%a:~0,-1%&GOTO loop
ECHO third way :a=%a%+ b=%b%+
在第一种方法中,我更改了字符的序列,以解释=
子句的"
和delims
之间任何字符的任何序列都充当一个单一的分隔符。代码“失败”就会“起作用”。
在第二种方法中,a
的设置以相同的方式工作。没有进一步的信息,真的不可能判断这是否足够。 b
是通过使用[nothing]
在第三种方法中,相同的操作建立b
,然后b
和分隔符连接在一起。系统地删除原始原始字符串和连接字符串副本末尾的字符。当连接版本变空时,您已从原始版本中删除了分隔符和附录,将原始字符串的部分保留到分隔符。