Batch file 我可以在批处理for循环中使用变量值作为字符串分隔符吗?
在windows批处理脚本中有没有一种方法可以将变量值用作字符串分隔符? 我想用一个数字把一个字符串“剪”成两半,每行的数字不同。i、 e NNNN 我只想创建一个字符串 NNNN 我已将%%M设置为数字NNNN,但提取正确位的for循环不起作用,它实际上是在字母“M”上剪切,而不是%%M的值。如何批量执行此操作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
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
值转移到调用参数。看起来您还需要传递%%F1)您的%%M
是另一个循环的变量还是仅仅是一个变量?2) 分隔符仅是单个字符,而不是字符串。此外,dbenham说,在for循环参数存在之前,您不能使用它。如果您提供一些示例来说明您要执行的操作,也许可以找到一种方法。