Batch file 我可以在批处理for循环中使用变量值作为字符串分隔符吗?

Batch file 我可以在批处理for循环中使用变量值作为字符串分隔符吗?,batch-file,for-loop,cmd,Batch File,For Loop,Cmd,在windows批处理脚本中有没有一种方法可以将变量值用作字符串分隔符? 我想用一个数字把一个字符串“剪”成两半,每行的数字不同。i、 e NNNN 我只想创建一个字符串 NNNN 我已将%%M设置为数字NNNN,但提取正确位的for循环不起作用,它实际上是在字母“M”上剪切,而不是%%M的值。如何批量执行此操作 FOR /F "tokens=1,2 delims**=%%M"** %%X IN ("%%F") DO ( S

在windows批处理脚本中有没有一种方法可以将变量值用作字符串分隔符? 我想用一个数字把一个字符串“剪”成两半,每行的数字不同。i、 e

NNNN

我只想创建一个字符串

NNNN

我已将%%M设置为数字NNNN,但提取正确位的for循环不起作用,它实际上是在字母“M”上剪切,而不是%%M的值。如何批量执行此操作

                FOR /F "tokens=1,2 delims**=%%M"** %%X IN ("%%F") DO (
                    SET /A LINE="%%M %%Y"
不能在FOR选项中使用FOR变量(
%%M
)或延迟扩展(
!var1!
)。可以使用正常扩展(
%var%
),但如果在定义变量的同一块中使用
%var%
,则无法使用正常扩展。因为您想使用
%%M
,所以定义一个变量并使用
%var%
没有任何好处


解决方案是调用一个过程并将
%%M
值转移到调用参数。看起来您还需要传递
%%F

1)您的
%%M
是另一个
循环的变量还是仅仅是一个变量?2) 分隔符仅是单个字符,而不是字符串。此外,dbenham说,在for循环参数存在之前,您不能使用它。如果您提供一些示例来说明您要执行的操作,也许可以找到一种方法。