[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 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. )
复制代码

几乎无限,应该和8192差不多,或以一行最大的长度来计算。测试:
  1. for %a in (11111111111111111111111  …… 111111111 1)  do echo;%a
复制代码
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

返回列表