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

cmd /v:on命令怎样开启变量延迟?

[复制链接]
发表于 2011-11-19 17:16:33 | 显示全部楼层 |阅读模式
  1. set b=1
  2. cmd /v:on /k echo !b!
  3. echo !b!
  4. pause
  5. echo !b!
  6. pause
复制代码
执行完第一个echo !b!后
pause
echo !b!
pause
这3句就没执行!!
我的意思是如何在后面其他语句继续引用变量!b!

最好是哪位老师讲一下cmd /vn /v:off /c /k /s /q...的用法
或者说替代enabledelayedexpansion的用法。
发表于 2011-11-19 17:53:52 | 显示全部楼层
父进程 cmd.exe(未开启变量延迟)
cmd /vn /k echo !b! 启用子进程 cmd.exe,在子进程中,变量延迟是被开启的
子进程运行结束,返回父进程,由于父子进程相互独立,所以此时父进程的变量延迟还是未开启的

如果不想使用 setlocal enabledelayedexpansion 来开启变量延迟,可以用 %1 cmd /v /c %0 : 来代替,但是代价是要花掉启动外部命令的时间,而且会出现两个 cmd 进程...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 07:42 , Processed in 0.017109 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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