找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 28634|回复: 7

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

[复制链接]
发表于 2011-6-16 12:44:15 | 显示全部楼层 |阅读模式
在for中:
set b=%%a
set c=!b:~12!
这个可以不可以简单一些啊?
像:
set b=%%:~12 (当然了这个不对)
发表于 2011-6-16 12:57:58 | 显示全部楼层
不行,因为参数变量是被cmd当成文件看待,而我们平时设置的变量却是字符串,两者虽可相互转换,但语法不能互相套用
发表于 2011-6-16 13:06:34 | 显示全部楼层
2# zm900612


很新鲜的看法,头一次听说
发表于 2011-6-16 13:07:53 | 显示全部楼层
1# BS0小陈


很基本的概念,一个的环境变量,一个循环变量,怎么能混为一谈?
发表于 2011-6-16 13:12:22 | 显示全部楼层
3# applba

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

这里说的不是变量的属性,而是试图从cmd设计者的角度来描述二者的区别,%%a的所有扩展用法都是针对文件的,而%str%的所有用法都是针对字符串的,所以我这么说,不过好像用词不当产生了歧义。
发表于 2011-6-16 17:27:12 | 显示全部楼层
本帖最后由 Hello123World 于 2011-6-16 17:29 编辑

%%a的所有扩展用法都是针对文件的,这话并不完全正确, 至少%~I          - 删除任何引号("),扩展 %I,这个不是。
不过说%%a的扩展是针对文件的这种说法确实让我很以为然,因为除了上面这一个(这个只是牵涉到可以处理字符串),其它的都是为处理文件而存在的。
发表于 2011-6-16 18:15:40 | 显示全部楼层
本帖最后由 tmplinshi 于 2011-6-16 18:17 编辑
%%a的所有扩展用法都是针对文件的


不是有 FOR /F ["options"] %variable IN ("string") DO command [command-parameters] 吗?
发表于 2011-6-16 19:50:28 | 显示全部楼层
楼上和再楼上的两位讨论的不是一回事
他们讨论的是for变量的替换修饰符主要针对文件做了增强
而不是说for变量扩展的都是文件对象
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 12:33 , Processed in 0.018262 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表