0

我的代码如下:

for /F "tokens=1,2 delims=%0.3%" %%i in ("double a = 0.3;") do (

设置 a=%%i

设置 b=%%j

)

我想要 a = "double a = " 和 b =;" 但这段代码无济于事。

有谁知道如何解决这个问题?

4

1 回答 1

1

您发布的代码根本不起作用。

for /F "tokens=1,2 delims=%0.3%" %%i in ("double a = 0.3;") do (

%0被替换为yourbatchfilenameand 由于 %" %在环境中没有设置值,它将被替换为 [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和分隔符连接起来。系统地删除原始原始字符串和连接字符串副本末尾的字符。当连接的版本变为空时,您已从原始版本中删除了分隔符和附录,将原始字符串的部分保留在分隔符处。

于 2013-04-13T04:41:20.393 回答