![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-02 21:38 |
共 48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 请问如何用for将文本的每一行作为变量 |
| 可打印版本 873 / 3 |
| 第1楼 26933062 | 发表于 2006-12-29 06:05 |
| 银牌会员 发帖 879 积分 2,268 | |
|
请问如何用for将文本的每一行作为变量 没什么实际作用,关键是想学会for,想了很久都没解决,请各位帮帮忙.
a.txt中的内容及格式如下,有很多.有30个 f:\试验\dc\aj.txt f:\试验\abc\ua.txt f:\试验\k\ay.txt f:\试验\kk\at.txt f:\试验\hc\a.txt 要求: 新建目录d:\备份\1\......d:\备份\2\.....d:\备份\3\........d:\备份\30\ 将a.txt中第一行的内容(其实是一个文档的路径)复制到d:\备份\1\ 将a.txt中第二行的内容(其实是一个文档的路径)复制到d:\备份\2\ 将a.txt中第三行的内容(其实是一个文档的路径)复制到d:\备份\3\ ..................... 我是这样写的 @echo off set aa=0 :1 set /a aa=%aa%+1 if %aa% gtr 30 goto :eof md d:\备份\aa% setlocal enabledelayedexpansion for /f "tokens=1,* delims=" %%i in (a.txt) do xcopy %%id:\备份\%aa%goto 1 pause 但是不行啊,它会把所有内容都复制到所有新建的文件夹里. |
|
| 第2楼 namejm | 发表于 2006-12-29 06:13 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
| 第3楼 26933062 | 发表于 2006-12-29 06:37 |
| 银牌会员 发帖 879 积分 2,268 | |
|
谢谢 namejm
版主 还有几个地方不懂,还麻烦解释一下好吗? @echo off set num=0 for /f "delims=" %%i in (a.txt) do call :copy_ "%%i" rem 下面的goto :eof什么情况下执行呢?执行的结果是什么呢?是退出吗? goto :eof :copy_ if %num% gtr 30 goto :eof set /a num+=1 md d:\备份\%num% rem 下面的%1是什么意思,怎么来的?用%2行不行? xcopy %1 d:\备份\%num% goto :eof 这个批处理是怎么实现循环的? [ Last edited by 26933062 on 2006-12-28 at 05:41 PM ] |
|
| 第4楼 tao0610 | 发表于 2006-12-29 08:01 |
| 高级用户 发帖 218 积分 579 | |
|
没实现循环只不过用CALL放FOR外面了.放里面也可以.
或者(没通用性) [ Last edited by tao0610 on 2006-12-28 at 07:02 PM ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |