今天遇到一个很奇怪的现象:- @echo off&setlocal enabledelayedexpansion
- for /f %%a in (1.txt) do (
- set w=%%a
- if defined w (echo !w!) else (echo 无字符)
- )
- pause
复制代码 这段代码应该是如果1.txt里有字符,就显示,没有则显示无字符。但实际效果为,当1.txt无字符时,没有echo 无字符这个显示。还以为是else失效了。然后我又改成- @echo off&setlocal enabledelayedexpansion
- for /f %%a in (1.txt) do (
- set w=%%a
- if not defined w (echo 无字符) else (echo !w!)
- )
- pause
复制代码 也是没有echo 无字符这个显示。那就不与else有关系。
只有把代码改成下面的就可以,好奇怪!我只是举了一个例子,实际是在其他的代码中发现了这个问题。希望大家帮我分析下,是不是哪里错了。- @echo off&setlocal enabledelayedexpansion
- for /f %%a in (1.txt) do (
- set w=%%a
- )
- if defined w (echo !w!) else (echo 无字符)
- pause
复制代码
|