Board logo

标题: 请高手帮忙指点一下,有点难度的问题! [打印本页]

作者: heheguai     时间: 2008-7-10 20:11    标题: 请高手帮忙指点一下,有点难度的问题!

请高手帮忙指点一下,有点难度的问题!
@echo off
for /r %%a in (*) do
(
set k=%%a
echo %k%
)
pause

为啥不能输出 %k%  ?
作者: pusofalse     时间: 2008-7-10 20:15
你确定语法果真正确吗? for /r %%a in (*.*) do (...
括号不是应该在同一行吗。。。。
你的问题,你在for语句里给k赋值,又在for语句中引用k,此时必须要开启变量延迟
请搜索变量延迟详解。。。
作者: bat-zw     时间: 2008-7-10 20:33

@echo off
for /r %%a in (*) do set k=%%a&call,echo %%k%%
pause

作者: heheguai     时间: 2008-7-10 20:35
多谢楼上的提醒,我已经用变量延迟解决问题了。多谢!
作者: heheguai     时间: 2008-7-10 20:35
@echo off&setlocal EnableDelayedExpansion
for /r %%a in (*) do (
set k=%%~ta
echo !k:~0,4! )
pause
作者: bat-zw     时间: 2008-7-10 20:38

@echo off
for /r %%a in (*) do set k=%%~ta&call,echo %%k:~0,4%%
pause