中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何从文本内容读取到批处理中
« [1] [2] »
作者:
标题: 如何从文本内容读取到批处理中 上一主题 | 下一主题
ronin
中级用户




积分 421
发帖 111
注册 2003-8-29
状态 离线
『楼 主』:  如何从文本内容读取到批处理中

因为批处理没办法建立lnk快捷方式,打算用文本来建立
使用代码
move /y "%systemdrive%\Program Files\快捷方式\系统工具\EVEREST 电脑硬件检测.lnk" "%AllUsersProfile%\「开始」菜单\程序\系统工具\" >nul 2>nul

因为比较多,而且希望用户可以自己修改添加,计划将这些写进文本内容,让客户可以自己添加修改,文本内容模式:

快捷方式.txt
“EVEREST 电脑硬件检测"系统工具

这样读取这个TXT文件就知道应该复制到那个位置
运行环境为WINXP,用途是做XP安装光盘

2006-12-6 06:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
a9319751
中级用户





积分 439
发帖 170
注册 2006-1-9
状态 离线
『第 2 楼』:  

for /f  "tokens=1,2  skip=1 delims=;" %%i in (1.txt) do @echo %%i+%%j
pause

你的文本中第一个引号是中文的“,第二个是英文的",建议可以去掉中文的“,英文的最好换成其他的分隔符,能让CMD识别



bat c c++
2006-12-6 06:21
查看资料  发送邮件  发短消息 网志  OICQ (5040366)  编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 3 楼』:  

  顶楼的 快捷方式.txt 这个文件内容是不是以 程序名+程序分类名 的格式保存的?并且要复制成 "%systemdrive%\Program Files\快捷方式\程序分类名\程序名.lnk" 的格式?请详细说明。



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-12-6 06:30
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ronin
中级用户




积分 421
发帖 111
注册 2003-8-29
状态 离线
『第 4 楼』:  

namejm版主说的对,就是打算这样做,分割符号换其它也行

2006-12-6 08:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 5 楼』:  

  那就请重新帖一段 快捷方式.txt 的内容出来,最好把文件名和文件分类名用特定符号分隔一下。



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-12-6 10:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ronin
中级用户




积分 421
发帖 111
注册 2003-8-29
状态 离线
『第 6 楼』:  

快捷方式.txt:
系统工具#360电脑安全卫士
系统工具#EVEREST电脑硬件检测
桌面#中国游戏中心
网络软件#TCPIP并发连接数破解
开始#超级兔子系统设置

大概就是这样,前面是程序分类,#后面的是程序名

2006-12-6 11:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
a9319751
中级用户





积分 439
发帖 170
注册 2006-1-9
状态 离线
『第 7 楼』:  

for /f  "tokens=1,2  delims=#" %%i in (快捷方式.txt) do move /y "%systemdrive%\Program Files\快捷方式\系统工具\%%j.lnk" "%AllUsersProfile%\「开始」菜单\程序\%%i\" >nul 2>nul

pause

   此帖被 +4 点积分        点击查看详情   
评分人:【 ronin 分数: +4  时间:2006-12-7 08:28




bat c c++
2006-12-7 03:40
查看资料  发送邮件  发短消息 网志  OICQ (5040366)  编辑帖子  回复  引用回复
ronin
中级用户




积分 421
发帖 111
注册 2003-8-29
状态 离线
『第 8 楼』:  

可以用,谢谢

2006-12-7 08:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 9 楼』:  

  补充一下:如果文件名有空格,那么,tokens就得换成 tokens=1*。

───────────────────────────────────────────────────────────
  在没有测试的情况下,受习惯性思维的影响,导致以上说法不正确,请看以下10F的测试和和11F的分析。

[ Last edited by namejm on 2006-12-6 at 09:21 PM ]



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-12-7 08:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
a9319751
中级用户





积分 439
发帖 170
注册 2006-1-9
状态 离线
『第 10 楼』:  



  Quote:
Originally posted by namejm at 2006-12-7 08:53:
  补充一下:如果文件名有空格,那么,tokens就得换成 tokens=1*。

测试了下, 有空格也没问题的,不用换*


系统   工具#360电脑安全卫士
系统工具#EVEREST   电脑硬件检测
桌面#中国游戏中心
网络软件#TCPIP并发连接数破解
开始#超级兔子系统设置



bat c c++
2006-12-7 09:03
查看资料  发送邮件  发短消息 网志  OICQ (5040366)  编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 11 楼』:  


  因为 delims=# ,所以是以#为分隔符的,空格不会考虑。


2006-12-7 10:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ronin
中级用户




积分 421
发帖 111
注册 2003-8-29
状态 离线
『第 12 楼』:  

"%systemdrive%\Program Files\快捷方式.txt
从这样的路径读取就会出错?是什么原因

2006-12-7 11:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 13 楼』:  



  Quote:
Originally posted by ronin at 2006-12-7 11:19:
"%systemdrive%\Program Files\快捷方式.txt
从这样的路径读取就会出错?是什么原因

"%systemdrive%\Program Files\快捷方式.txt"
引号是否正确使用?

2006-12-7 11:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ronin
中级用户




积分 421
发帖 111
注册 2003-8-29
状态 离线
『第 14 楼』:  

用了"程序读取报错,无法实现功能,不用"就是说路径不对

2006-12-7 22:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 15 楼』:  

  换成如下代码再试试:
@echo off
for /f "usebackq tokens=1,2 delims=#" %%i in ("%systemdrive%\Program Files\快捷方式.txt") do  (
    move /y "%systemdrive%\Program Files\快捷方式\系统工具\%%j.lnk" "%AllUsersProfile%\「开始」菜单\程序\%%i\" >nul 2>nul
)
pause




尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-12-7 22:52
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: