[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
findstr 匹配多个中文串的问题比较棘手
目前找不到问题的实质原因
所以我在顶楼也只是含糊其辞
如果有更多的测试和证据
足以让人判断其问题的源头
那么我可以考虑更新一下
天的白色影子

TOP

回复 46楼 的帖子

早就习惯了变量的这种扩展形式
忘了这也是不符合大多数人的认知习惯的
其实关于增强的变量扩展方面
负值的使用也在挑战大多数人的认知

使用正值就是起始的偏移量+长度
使用负值却不是起始的反向偏移量+反向长度
而是起始的反向偏移量+终止的反向偏移量

我最初在理解set的这句说明了
也还纳闷了老半天
为什么呢?

这大概说明了
增强的变量扩展在对正值和负值的处理上
采用了完全不同的两种处理逻辑
所以正值超出后为空
而负值超出后为首字符地址的逻辑
也就不难理解了
天的白色影子

TOP

回复 50楼 的帖子

这是可以理解的

%%i是dir的原样输出
所以受到dir/l的控制
而%%~nxi是扩展输出
是受到变量扩展逻辑控制的

dir/s/b将给出文件的完整路径
而在%%~nxi扩展时能根据路径找到文件
自然会把变量当作文件名处理
所以是文件自身的大小写状态

没有/s将只给出文件名
而如果当前路径不是dir的路径
则%%~nxi没有办法找到对应文件
自然只有按“当前路径+替代变量“的形式扩展
所以是替代变量%%i原来的大小写状态
天的白色影子

TOP

返回列表