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

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

  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的用法。

父进程 cmd.exe(未开启变量延迟)
cmd /vn /k echo !b! 启用子进程 cmd.exe,在子进程中,变量延迟是被开启的
子进程运行结束,返回父进程,由于父子进程相互独立,所以此时父进程的变量延迟还是未开启的

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

TOP

返回列表