0
A
回答
4
的
解析器不同阶段,解析一行时。
因此,在执行行(或块中的任何行)之前,行或块被解析时,百分比表达式都会展开。
所以在执行时他们不能再改变了。
set var=origin
echo #1 %var%
(
set var=new value
echo #2 %var%
)
echo #3 %var%
它输出
#1 origin
#2 origin
#3 new value
如在分析时#2将执行该块的任何行之前被扩展到origin
。 因此,您可以在#3块后面看到新值。
相比之下,延迟扩展在每行执行之前就扩大了。
setlocal EnableDelayedExpansion
set var=origin
echo #1 %var%, !var!
(
set var=new value
echo #2 %var%, !var!
)
echo #3 %var%, !var!
输出
#1 origin, origin
#2 origin, new value
#3 new value, new value
现在在#2你看到两个不同的膨胀为相同的变量,因为当块被解析%VAR%扩大,但经过线路set var=new value
是!var!
扩大执行。
有关批解析器的更多详细信息,请参阅SO: How does the Windows Command Interpreter (CMD.EXE) parse scripts?
相关问题
- 1. 了解时间片和执行时间
- 2. NYTProf执行时分析和不分析时的执行时间
- 3. 解析与乔达时间
- 4. 解析时间
- 5. 错误解析时区与时间::片
- 6. 解析日期时间与时区
- 7. 与日期时间时区converttime解析
- 8. 解析时间SimapleDateFormat
- 9. 解析时间段
- 10. 获取DNS解析时间和响应时间与Python
- 11. JSON与解析的时间或时间戳amCharts
- 12. 解析字符串到时间与原始时间不一样
- 13. 任务执行时间高于定时器执行时间
- 14. Cassandra查询执行时间分析
- 15. Codeigniter分析器执行时间错误?
- 16. 问题与日期时间解析
- 17. 与乔达时间解析周日期?
- 18. 与解析日期时间C#
- 19. 解析ISO持续时间与JSON.Net
- 20. 解析日期时间与lubridate
- 21. 与Java时间解析混淆UTC
- 22. 与亚秒时间解析数据
- 23. PHP执行时间vs空闲时间
- 24. SQL查询时间 - 执行时间
- 25. SQL查询长时间执行时间
- 26. 如何将json解析时间与ruby对象时间进行比较?
- 27. JS执行时间
- 28. button.onclick执行时间
- 29. Mfile执行时间
- 30. mysql执行时间