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


    不用 findstr 也行,设 max 的时候顺便设一个 maxline=%%a 就好

TOP

回复 8# pcl_test


    那可以这样:
maxline=!maxline!!换行!%%a

TOP

回复 13# cobat


    变量表中除了分隔符 00 字符外,其他字符都可以保存到变量中

TOP

本帖最后由 CrLf 于 2015-3-9 20:21 编辑

回复 15# cobat


环境变量的本质是一张连续的变量表,比如
  1. set 变量1=变量内容1
  2. set 变量2=变量内容2
复制代码
假设当前环境下只有这两个变量的话,那么整张表在内存中的表现是:
  1. 变量1=变量内容1(null)变量2=变量内容2(null)(null)
复制代码
(null) 表示 00 字符,连续两个 (null) 表示变量表结束
读写变量的时候就是不停检索等号前有没有相同的名称,匹配的话就输出后面的内容直到 (null)
这个逻辑在 xp 下很严格,win7 环境中则有诡异的表现,应该是个 bug

setlocal 其实是在当前变量表的基础上复制一张变量表,所有改动都在“分身”上进行,这张新的变量表直到文件末尾或碰到 endlocal 才会销毁
变量表最多同时存在 32 张,每次 call 之后可单独计算

提到变量,这里有几个旧帖值得一看,作者都是牛逼人物...
qzwqzw: [讨论]环境变量的存储(5-18更新)
caruko:批处理变量表机制的猜测及测试
plp626:扩展ASCII码字符集0x00~0xff 批处理获取函数
记得 demon 也有提到过变量,现在找不到帖子了
1

评分人数

    • cobat: 乐于助人技术 + 1

TOP

回复 20# cobat


    外部命令的特点是启动慢,执行快…
    话说你在15楼问的是什么意思哦

TOP

本帖最后由 CrLf 于 2015-3-10 18:57 编辑

回复 22# cobat


    call 执行起来很慢,其实还是看需求,一般情况下低效率的脚本都是让人难以容忍的
    每次使用外部命令都得尽可能压榨它的潜力,启动慢的命令都要避免频繁调用,但如果调用次数不多就没关系
http://www.bathome.net/viewthread.php?tid=15011

TOP

回复 27# caruko


    findstr /o 有个陷阱,对同时存在 \r\n 和 \n 两种换行方式的文本比较难以区分

TOP

回复 31# tigerpower


    用 Object-Group 可能更方便

TOP

回复 34# terse


    改写个支持多行的
  1. (gc a.txt | sort -desc | group length | select -first 1).group
复制代码
1

评分人数

    • terse: 感谢分享技术 + 1

TOP

回复 37# terse


    不是 count,是 name。这样写逻辑上更快,但我昨天试了一下发现 name 是字符串,100<2

TOP

回复 36# tigerpower


    是的,感谢指正

TOP

本帖最后由 CrLf 于 2015-3-17 18:05 编辑

回复 40# terse


    但 count 是 group 的长度,不是字符串的长度,用 count 排序得到的是最多匹配的 group
    应该可以在 sort 里处理 name 再排序,就像 ren 正则替换那样

TOP

回复 42# terse


    试了一下,可以这样:
  1. (gc a.txt | group length| sort {[int32]$_.name}|select -last 1).group
复制代码
1

评分人数

    • terse: 这个转型高技术 + 1

TOP

返回列表