jca*_*219 14 windows batch-file
@echo off
SET first=0
FOR %%N IN (hello bye) DO (
SET first=1
echo %first%
echo %%N
)
Run Code Online (Sandbox Code Playgroud)
似乎变量"first"始终为0.为什么?
Mic*_*sen 28
对于批处理文件,在读取命令时会扩展变量 - 这样就可以在for执行时立即执行.在这一点上,它不再说echo %first%,它字面上说echo 0,因为这是扩张点的价值.
为了解决这个问题,你需要使用延迟扩展来!代替%- 而不是- 这样就可以使用延迟扩展echo !first!.这可能需要您使用/ V参数启动cmd.exe,或者setlocal enabledelayedexpansion在批处理文件的开头使用(仅在之后echo off).
如果输入set /?,您将在输出结尾处看到更详细的解释.
| 归档时间: |
|
| 查看次数: |
22631 次 |
| 最近记录: |