Board logo

标题: [文本处理] for %%a in (str) 中, str 可接受的最大长度是多少 [打印本页]

作者: fatcat    时间: 2012-5-1 13:10     标题: for %%a in (str) 中, str 可接受的最大长度是多少

本帖最后由 fatcat 于 2012-5-1 13:11 编辑

论坛里有几个帖子讨论了 变量, set /p 最大长度的问题, 常和 8192 这个数字相关

for %%a in (str) 中, str 可接受的最大长度是多少呢, 是以字节计, 还是以字符计呢, 这些又如何能证实呢?

抛砖引玉, 下面针对 单字节字符 作了个简单测试, 但不足以给出什么结论
  1. @echo off & setlocal enabledelayedexpansion
  2. <nul >f.bin (for /l %%i in (1 1 1859) do set /p "=%%i ")
  3. for %%f in (f.bin) do set "i=%%~zf" & echo File size: %%~zf bytes.
  4. for /l %%t in () do (
  5.   set /a "i+=1" & set "s=!s!A" & echo,Length: !i!
  6.   for /f "delims=" %%l in (f.bin) do for %%a in (%%l!s!) do <nul set /p "=%%a,"
  7.   echo, & pause & cls
  8. )
复制代码

作者: cjiabing    时间: 2012-5-1 18:04

几乎无限,应该和8192差不多,或以一行最大的长度来计算。测试:
  1. for %a in (11111111111111111111111  …… 111111111 1)  do echo;%a
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2