中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-05 11:24
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]请高手帮忙看下错在那里? 查看 960 回复 3
楼 主 [求助]请高手帮忙看下错在那里? 发表于 2007-08-05 22:51 ·  中国 陕西 汉中 电信
初级用户
积分 136
发帖 49
注册 2007-01-04 08:28
19年会员
UID 75413
性别 男
状态 离线
有一批文件夹命名方式是:身份证号码加名字。如:612321***********张三
假定身份证号都是十八位,要用批处理把身份证号码和姓名分别两个文本文件里!我的代码如下,但不知道那个地方错了,还望指教.


for /f %%i in ('dir /b') do (
set str=%%i
echo %str:~,18%>>hm.txt
echo %str:~18,%>>xm.txt)

上面代码运行后,达不到我想要的结果!另外有些文件夹的名字在身份证号码和名字之间有空格。
2 发表于 2007-08-06 00:31 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线

@echo off
setlocal ENABLEDELAYEDEXPANSION
for /f "delims=" %%i in ('dir/b/ad') do (
set str=%%i
set str=!str: =!
echo !str:~0,18!>>hm.txt
echo !str:~18!>>xm.txt
)
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
beeny +2 2007-08-06 11:10
3 发表于 2007-08-06 09:57 ·  中国 北京 联通
银牌会员
★★★
积分 1,287
发帖 634
注册 2007-05-02 15:06
19年会员
UID 87277
性别 男
来自 cmd.exe
状态 离线
不过开了setlocal ENABLEDELAYEDEXPANSION的话。万一文本里有!号的话可能要出事。
4 发表于 2007-08-06 12:52 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
用call来延迟(只适用set、echo,if不能用)
@echo off
for /f "delims=" %%i in ('dir/b/ad') do (
set str=%%i
call set str=%%str: =%%
call echo %%str:~0,18%%>>hm.txt
call echo %%str:~18%%>>xm.txt
)
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
beeny +2 2007-08-07 08:14
论坛跳转: