Board logo

标题: [求助]请高手帮忙看下错在那里? [打印本页]

作者: beeny     时间: 2007-8-5 22:51    标题: [求助]请高手帮忙看下错在那里?

有一批文件夹命名方式是:身份证号码加名字。如:612321***********张三
假定身份证号都是十八位,要用批处理把身份证号码和姓名分别两个文本文件里!我的代码如下,但不知道那个地方错了,还望指教.


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

上面代码运行后,达不到我想要的结果!另外有些文件夹的名字在身份证号码和名字之间有空格。
作者: 26933062     时间: 2007-8-6 00:31

@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
  )

作者: knoppix7     时间: 2007-8-6 09:57
不过开了setlocal ENABLEDELAYEDEXPANSION的话。万一文本里有!号的话可能要出事。
作者: zh159     时间: 2007-8-6 12:52
用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
  )