中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]请帮我看下这个从文本读取字符的代码错在哪里?
作者:
标题: [求助]请帮我看下这个从文本读取字符的代码错在哪里? 上一主题 | 下一主题
lee928
初级用户





积分 36
发帖 14
注册 2008-3-5
状态 离线
『楼 主』:  [求助]请帮我看下这个从文本读取字符的代码错在哪里?

set bakdriver=g:
set yesterday1=20080308
set yesterday0=2008-03-08
for /f %%i in (abc.txt) do (
set aa=%%i
echo MD %BAKDRIVER%\%aa:~0,2%\%yesterday1%\echo xxcopy %aa:~2,2%\*.* %tempdriver%\ /yy /s /e /da:%yesterday0% /db:%yesterday0%
echo rar m -r %aa:~4,10%.rar  
echo move %tempdriver%\%aa:~4,10%.rar %BAKDRIVER%\%aa%\%yesterday1%\
)

abc.txt内容如下

一部P:财务数据
二部V:客户数据
三部M:内部数据
总部N:文件

想实现从abc.txt中逐行读取字符变量,然后截取每行第1-2字符做备份目录名,
第3-4字符为需备份目录文件所在盘,余下的字符为生成备份的压缩文档名。

我现在这样运行读取变量后不正确。请达人帮忙指点一下到底哪里的错误?

运行环境win2000pro下

2008-3-9 22:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 2 楼』:  

后面命令有错吧?

2008-3-9 23:01
查看资料  发短消息 网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 3 楼』:  

%tempdriver%变量不知道楼主哪来的,先去掉了
如果有用请自行再加上请补全路径
MD与xxcopy前的echo应该是两条命令吧?
@echo off&setlocal enabledelayedexpansion
set bakdriver=g:
set yesterday1=20080308
set yesterday0=2008-03-08

for /f %%i in (abc.txt) do (
  set "aa=%%i"
  echo MD %BAKDRIVER%\!aa:~0,2!\%yesterday1%\
  echo xxcopy !aa:~2,2!\*.* %tempdriver%\ /yy /s /e /da:%yesterday0% /db:%yesterday0%
  echo rar m -r !aa:~4,10!.rar  
  echo move !aa:~4,10!.rar %BAKDRIVER%\!aa:~0,2!\%yesterday1%\
  echo.
)

pause
[ Last edited by suntb on 2008-3-9 at 11:10 PM ]

2008-3-9 23:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 4 楼』:  

附上运行结果图,供楼主参考是否正确



2008-3-9 23:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lee928
初级用户





积分 36
发帖 14
注册 2008-3-5
状态 离线
『第 5 楼』:  

非常感谢 suntb !

但有一点不明白,还请多指教!

%aa:~2,2%和!aa:~2,2! 有什么不同呢?

另外这个脚本能运行在win2000环境下吗?

2008-3-9 23:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by lee928 at 2008-3-9 23:31:
非常感谢 suntb !

但有一点不明白,还请多指教!

%aa:~2,2%和!aa:~2,2! 有什么不同呢?

另外这个脚本能运行在win2000环境下吗?

1、涉及到变量延迟
2、win2000下应该可以运行

2008-3-10 00:05
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: