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

[其他] 批处理for命令中可以使用变量扩展吗?

在for中:
set b=%%a
set c=!b:~12!
这个可以不可以简单一些啊?
像:
set b=%%:~12 (当然了这个不对)

不行,因为参数变量是被cmd当成文件看待,而我们平时设置的变量却是字符串,两者虽可相互转换,但语法不能互相套用

TOP

2# zm900612


很新鲜的看法,头一次听说

TOP

1# BS0小陈


很基本的概念,一个的环境变量,一个循环变量,怎么能混为一谈?

TOP

3# applba

只是个人看法,没有权威性。

这里说的不是变量的属性,而是试图从cmd设计者的角度来描述二者的区别,%%a的所有扩展用法都是针对文件的,而%str%的所有用法都是针对字符串的,所以我这么说,不过好像用词不当产生了歧义。

TOP

本帖最后由 Hello123World 于 2011-6-16 17:29 编辑

%%a的所有扩展用法都是针对文件的,这话并不完全正确, 至少%~I          - 删除任何引号("),扩展 %I,这个不是。
不过说%%a的扩展是针对文件的这种说法确实让我很以为然,因为除了上面这一个(这个只是牵涉到可以处理字符串),其它的都是为处理文件而存在的。

TOP

本帖最后由 tmplinshi 于 2011-6-16 18:17 编辑
%%a的所有扩展用法都是针对文件的


不是有 FOR /F ["options"] %variable IN ("string") DO command [command-parameters] 吗?

TOP

楼上和再楼上的两位讨论的不是一回事
他们讨论的是for变量的替换修饰符主要针对文件做了增强
而不是说for变量扩展的都是文件对象
天的白色影子

TOP

返回列表