我的代码如下:
for /F "tokens=1,2 delims=%0.3%" %%i in ("double a = 0.3;") do (
设置 a=%%i
设置 b=%%j
)
我想要 a = "double a = " 和 b =;" 但这段代码无济于事。
有谁知道如何解决这个问题?
我的代码如下:
for /F "tokens=1,2 delims=%0.3%" %%i in ("double a = 0.3;") do (
设置 a=%%i
设置 b=%%j
)
我想要 a = "double a = " 和 b =;" 但这段代码无济于事。
有谁知道如何解决这个问题?
您发布的代码根本不起作用。
for /F "tokens=1,2 delims=%0.3%" %%i in ("double a = 0.3;") do (
将%0
被替换为yourbatchfilename
and 由于 %" %
在环境中没有设置值,它将被替换为 [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
可以作为 SINGLE 分隔符。代码通过失败而“工作”。
在第二种方法中,设置的a
工作方式相同。没有更多信息,真的无法判断这是否足够。b
是通过专门替换源字符串中的所有字符来设置的,直到并包括带有 [nothing] 的分隔符
在第三种方法中,同样的操作建立b
,然后b
和分隔符连接起来。系统地删除原始原始字符串和连接字符串副本末尾的字符。当连接的版本变为空时,您已从原始版本中删除了分隔符和附录,将原始字符串的部分保留在分隔符处。