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

TOP

回复 4# Hello123World


    没,用别人的。

TOP

本帖最后由 CrLf 于 2011-10-7 19:39 编辑

对了,寒夜Boss 说过 tokens 中无论是否使用* ,cmd 都会为其保留一个令牌,若开启则可以使用第 32 个令牌。若使用的令牌数(含*)超过 32 则相当于只设置了一个 *。
至于如何使用连续的32 个令牌,我做过测试,令牌的先后次序按照字符编码排序,也就是说非字母数字的字符也可用(实例见俺签名档),包括汉字。后来看发现了 plp626 的精华帖中早就注明了…

TOP

补上那个链接:
http://bbs.bathome.net/viewthrea ... hlight=for%2Bplp626
可以参考顶楼内容

以下为单字节字符的可用性测试文件:

::其中标注为出错的表明测试脚本在对其进行预处理时发生问题,而不代表此字符不用于令牌,而显示“不能成为首个参数变量”的表明该字符不可作为 [%%A] 出现,应为它们是 for 命令的默认分隔符或双引号,无法在 for 中被当成普通字符进行预处理操作,但我们可以把他们用作 [%%B] 或其他位于 [%%A] 之后的令牌名(可行,但不推荐)

也就是说,既可以使用汉字作为连续的 31 个令牌名,也可以使用单字节字符(比如 0x63~0x127 这个范围都是连续的可用令牌名)

TOP

回复 12# Hello123World


    是按 Unicode 排,见 15 楼链接,保存为 Ansi 与 Unicode 格式的文本各一,再 debug 一下就知道了~不过话说回来,0x128 之前都是完全一样的。
    顺便说一句,记得寒夜胸(怎么又是他...)提到过 cmd 内部是以 Unicode 运行的,仅在与用户交互时使用 Ansi,不过我当时像听故事一样,没有问清该说法是推论还是猜测...

TOP

返回列表