【发布时间】:2010-11-02 02:54:02
【问题描述】:
我试图在 Windows 批处理脚本中处理文本文件,但遇到了一些看起来像是 FOR 循环中 31 个令牌的限制。我在下面的代码中隔离了这个问题:
@ECHO OFF
SET DATA=01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
FOR /F "tokens=31* delims= " %%i IN ("%DATA%") DO (
ECHO [%%i]
ECHO [%%j]
)
ECHO.
FOR /F "tokens=32* delims= " %%i IN ("%DATA%") DO (
ECHO [%%i]
ECHO [%%j]
)
输出是:
[31]
[32 33 34 35]
[01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35]
[%j]
我期待这个:
[31]
[32 33 34 35]
[32]
[33 34 35]
希望我没有做错什么,我在 FOR 命令的帮助中找不到此限制。我正在使用 Windows XP。除了截断部分数据之外,您是否知道任何解决方法?
谢谢。
【问题讨论】:
-
我也遇到了这个限制。我只是在做
for /F "tokens=32" %%a in ([big list of tokens])....,所以我只想要变量%%a中的第32 个标记,并且不认为我会遇到任何限制,只从列表中获取一个特定标记。男孩是我错了!很棒的帖子。 :)
标签: windows command-line scripting batch-file