set datenum=0
for /f "tokens=*" %%i in (.\logDate.txt) do (
set /a datenum+=1
if !datenum! equ 2 (
set ipath = %%i
echo %%i =====此处有值
echo!ipath! =====此处无值 )
)
求高手解答
补充整段代码: 我已经开启延迟了
@echo off
setlocal enabledelayedexpansion
set datenum=0
set ipath=
for /f "tokens=*" %%i in (.\logDate.txt) do (
set /a datenum+=1
if !datenum! equ 2 (
set ipath = %%i
echo %%i =====此处有值
echo!ipath! =====此处无值 )
)
求高手解答
楼上回答的很好,那我再问一下 为什么 有的时候不用 引号 没事 ,像赋予变量文本内容(除了数字) 就必须如你说的那样才能显示出来啊
追答没事的时候是因为你在给变量赋值的时候,变量前后都没有多余的空格...出了问题则反之...
所以初始化变量以及给变量赋值最好是用引号括起来...
即:set "str="
set "str=Message"
echo.%str%
下面是错误的例子:
@echo off
set str ="Hello world"
rem str 变量后面多了一个空格,其实变量不是你预想的"str",而是"str "
echo.%str%
rem 很显然,这个结果就不是你期望的了
rem echo.%str %
rem 把注释去掉才是你想要的结果
pause