标题: cmd /v:on命令怎样开启变量延迟? [打印本页]
作者: stu_p 时间: 2011-11-19 17:16 标题: cmd /v:on命令怎样开启变量延迟?
- set b=1
- cmd /v:on /k echo !b!
- echo !b!
- pause
- echo !b!
- pause
复制代码
执行完第一个echo !b!后
pause
echo !b!
pause
这3句就没执行!!
我的意思是如何在后面其他语句继续引用变量!b!
最好是哪位老师讲一下cmd /vn /v:off /c /k /s /q...的用法
或者说替代enabledelayedexpansion的用法。
作者: CrLf 时间: 2011-11-19 17:53
父进程 cmd.exe(未开启变量延迟)
cmd /vn /k echo !b! 启用子进程 cmd.exe,在子进程中,变量延迟是被开启的
子进程运行结束,返回父进程,由于父子进程相互独立,所以此时父进程的变量延迟还是未开启的
如果不想使用 setlocal enabledelayedexpansion 来开启变量延迟,可以用 %1 cmd /v /c %0 : 来代替,但是代价是要花掉启动外部命令的时间,而且会出现两个 cmd 进程...
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |