![]() |
1
59
看看下面的例子。。。
例1:
以下代码不使用延迟扩展,因此for循环中的变量只扩展一次。这意味着
所以这个脚本将输出:
这不是这个循环应该如何工作的。 例2: 另一方面,如果我们使用延迟扩展,我们有以下脚本,它将按预期运行。
如预期,它将输出:
当你使用
|
|
2
9
我想添加一个关于“EnableDelayedExpansion”(EDE)在无处不在的FOR循环示例之外是如何有用的很好的例子。 这是一行我想解析的地震数据(我称之为1line.txt) 阿克苏11574812 2015.04.29.193822 62.9525-148.8849 1.0 9.5阿拉斯加州坎特韦尔以南149公里 我遇到的问题是这行的最后一段并不总是以同一个列号开始。因此,我需要创建一个灵活的SET命令,可以准确地拔出这一行的最后一段。
EDE允许我将一个变量(where)放在另一个变量(line)中。EDE将首先翻译用%括起来的变量,然后处理用%括起来的变量!然后(在本例中)将结果推送到“locate”变量中。 |
![]() |
3
8
Max's answer 给予 批处理脚本在具有或不具有延迟扩展的情况下的不同操作示例 .
为了完整起见,让我们回答问题的另一部分并展示
不想使用延迟扩展的情况
当数据包含感叹号时
注意上面的脚本显示 proper ways of escaping
输出 :
|
![]() |
late1 · 批处理文件未执行命令 2 年前 |
![]() |
Ali EXE · 如何根据bat中命令的输出设置变量? 2 年前 |
![]() |
Laureano Oliva · 如何将链接用作参数%1批处理函数? 2 年前 |
![]() |
F35H · 涉及二次使用cd的错误。。在C代码中 2 年前 |