如何将将变量延迟详解 call setlocal改写为一个长尾词的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计6371个文字,预计阅读时间需要26分钟。
关于批处理新手和变量延迟这两个概念,很可能被新手忽视,但它们就像一道无形的高墙,阻挡在前进道路上。你或许感觉不到它的存在,但当你尝试前进时,它会给你带来重重阻碍。
对于批处理新手而言,“变量延迟”这个概念很可能闻所未闻,但是,它却像一堵横亘在你前进道路上的无形高墙,你感受不到它的存在,但当你试图往前冲时,它会把你狠狠地弹回来,让你无法逾越、无功而返;而一旦找到了越过它的方法,你就会发现,在for的世界里,前面已经是一片坦途,而你对批处理的理解,又上升到了一个新的境界。
例如,你编写了这样一个代码:
@echo off set num=0&&echo %num% pause
你的本意是想对变量num赋值之后,再把这个值显示出来,结果,显示出来的并不是0,而是显示:ECHO 处于关闭状态。
之所以会出错,是因为“变量延迟”这个家伙在作怪。
在讲解变量延迟之前,我们需要了解一下批处理的执行过程,它将有助于我们深入理解变量延迟。
批处理的执行过程是怎样的呢?
“自上而下,逐条执行”,我想,这个经典的说法大家都已经耳熟能详了,没事的时候倒着念,也还别有一番古韵呢^_^,但是,我想问大家的是,大家真的深刻地理解了这句话的含义了吗?
“自上而下”,这一条和我们本节的讲解关系不大,暂时略过不说,后一条,“逐条执行”和变量延迟有着莫大的干系,它是我们本节要关注的重点。
很多人往往认为一行代码就是一条语句,从而把“逐条执行”与“逐行执行”等同起来,这就大错特错了。
莫非“逐条执行”里暗藏着玄机?
正是如此。
“逐条”并不等同于“逐行”。
本文共计6371个文字,预计阅读时间需要26分钟。
关于批处理新手和变量延迟这两个概念,很可能被新手忽视,但它们就像一道无形的高墙,阻挡在前进道路上。你或许感觉不到它的存在,但当你尝试前进时,它会给你带来重重阻碍。
对于批处理新手而言,“变量延迟”这个概念很可能闻所未闻,但是,它却像一堵横亘在你前进道路上的无形高墙,你感受不到它的存在,但当你试图往前冲时,它会把你狠狠地弹回来,让你无法逾越、无功而返;而一旦找到了越过它的方法,你就会发现,在for的世界里,前面已经是一片坦途,而你对批处理的理解,又上升到了一个新的境界。
例如,你编写了这样一个代码:
@echo off set num=0&&echo %num% pause
你的本意是想对变量num赋值之后,再把这个值显示出来,结果,显示出来的并不是0,而是显示:ECHO 处于关闭状态。
之所以会出错,是因为“变量延迟”这个家伙在作怪。
在讲解变量延迟之前,我们需要了解一下批处理的执行过程,它将有助于我们深入理解变量延迟。
批处理的执行过程是怎样的呢?
“自上而下,逐条执行”,我想,这个经典的说法大家都已经耳熟能详了,没事的时候倒着念,也还别有一番古韵呢^_^,但是,我想问大家的是,大家真的深刻地理解了这句话的含义了吗?
“自上而下”,这一条和我们本节的讲解关系不大,暂时略过不说,后一条,“逐条执行”和变量延迟有着莫大的干系,它是我们本节要关注的重点。
很多人往往认为一行代码就是一条语句,从而把“逐条执行”与“逐行执行”等同起来,这就大错特错了。
莫非“逐条执行”里暗藏着玄机?
正是如此。
“逐条”并不等同于“逐行”。

