标题: [文本处理] 批处理for语句用set为何只能赋值一次? [打印本页]
作者: lqh3417 时间: 2011-11-1 20:51 标题: 批处理for语句用set为何只能赋值一次?
运行环境:
R:\test>dir /b/ad
a123
b123
c123
d123
使用脚本- %echo off
- FOR /F "usebackq delims==" %%i IN (`dir /b/ad`) DO (
- set dirname=%%i
- echo %dirname:~0,3%
- )
复制代码
输出结果
R:\test>listvar.bat
R:\test>echo off
d12
d12
d12
d12
我的问题:我的目的是输出每个子目录的前三个字符,
请问怎样修改脚本才能输出我要的结果a12,b12,c12,d12呢?
作者: wc726842270 时间: 2011-11-1 21:28
如果你把书一本本的罗起来,不也是仅能看到最后一本的风面么?
作者: 545810831 时间: 2011-11-1 21:37
启用延迟变量- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b /ad') do (
- set dirname=%%i
- echo !dirname:~0,3!
- )
- pause
复制代码
作者: lqh3417 时间: 2011-11-1 23:28
哦哦,明白了,谢谢你们的指教! 太久没温习这方面的知识啦,一时间想不起来。
作者: lqh3417 时间: 2011-11-1 23:33
本帖最后由 lqh3417 于 2011-11-1 23:34 编辑
额,刚才提交了回复没有反应,刷新一下才有,登录也是这样,可能是用IE9的问题吧
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |