中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 16:42
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何从文本内容读取到批处理中 查看 2,339 回复 15
楼 主 如何从文本内容读取到批处理中 发表于 2006-12-06 06:02 ·  中国 广东 梅州 电信
中级用户
★★
积分 421
发帖 111
注册 2003-08-29 00:00
22年会员
UID 9153
性别 男
状态 离线
因为批处理没办法建立lnk快捷方式,打算用文本来建立
使用代码
move /y "%systemdrive%\Program Files\快捷方式\系统工具\EVEREST 电脑硬件检测.lnk" "%AllUsersProfile%\「开始」菜单\程序\系统工具\" >nul 2>nul

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

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

这样读取这个TXT文件就知道应该复制到那个位置
运行环境为WINXP,用途是做XP安装光盘
2 发表于 2006-12-06 06:21 ·  中国 河南 郑州 电信
中级用户
★★
积分 439
发帖 170
注册 2006-01-09 20:29
20年会员
UID 48707
状态 离线
for /f "tokens=1,2 skip=1 delims=;" %%i in (1.txt) do @echo %%i+%%j
pause

你的文本中第一个引号是中文的“,第二个是英文的",建议可以去掉中文的“,英文的最好换成其他的分隔符,能让CMD识别
bat c c++
3 发表于 2006-12-06 06:30 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  顶楼的 快捷方式.txt 这个文件内容是不是以 程序名+程序分类名 的格式保存的?并且要复制成 "%systemdrive%\Program Files\快捷方式\程序分类名\程序名.lnk" 的格式?请详细说明。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
4 发表于 2006-12-06 08:05 ·  中国 广东 梅州 电信
中级用户
★★
积分 421
发帖 111
注册 2003-08-29 00:00
22年会员
UID 9153
性别 男
状态 离线
namejm版主说的对,就是打算这样做,分割符号换其它也行
5 发表于 2006-12-06 10:25 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  那就请重新帖一段 快捷方式.txt 的内容出来,最好把文件名和文件分类名用特定符号分隔一下。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
6 发表于 2006-12-06 11:10 ·  中国 广东 梅州 电信
中级用户
★★
积分 421
发帖 111
注册 2003-08-29 00:00
22年会员
UID 9153
性别 男
状态 离线
快捷方式.txt:
系统工具#360电脑安全卫士
系统工具#EVEREST电脑硬件检测
桌面#中国游戏中心
网络软件#TCPIP并发连接数破解
开始#超级兔子系统设置

大概就是这样,前面是程序分类,#后面的是程序名
7 发表于 2006-12-07 03:40 ·  中国 河南 郑州 电信
中级用户
★★
积分 439
发帖 170
注册 2006-01-09 20:29
20年会员
UID 48707
状态 离线
for /f "tokens=1,2 delims=#" %%i in (快捷方式.txt) do move /y "%systemdrive%\Program Files\快捷方式\系统工具\%%j.lnk" "%AllUsersProfile%\「开始」菜单\程序\%%i\" >nul 2>nul

pause
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
ronin +4 2006-12-07 08:28
bat c c++
8 发表于 2006-12-07 08:27 ·  中国 广东 梅州 电信
中级用户
★★
积分 421
发帖 111
注册 2003-08-29 00:00
22年会员
UID 9153
性别 男
状态 离线
可以用,谢谢
9 发表于 2006-12-07 08:53 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  补充一下:如果文件名有空格,那么,tokens就得换成 tokens=1*。

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

[ Last edited by namejm on 2006-12-6 at 09:21 PM ]
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
10 发表于 2006-12-07 09:03 ·  中国 河南 郑州 电信
中级用户
★★
积分 439
发帖 170
注册 2006-01-09 20:29
20年会员
UID 48707
状态 离线
Originally posted by namejm at 2006-12-7 08:53:
  补充一下:如果文件名有空格,那么,tokens就得换成 tokens=1*。


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


系统 工具#360电脑安全卫士
系统工具#EVEREST 电脑硬件检测
桌面#中国游戏中心
网络软件#TCPIP并发连接数破解
开始#超级兔子系统设置
bat c c++
11 发表于 2006-12-07 10:09 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

  因为 delims=# ,所以是以#为分隔符的,空格不会考虑。
12 发表于 2006-12-07 11:19 ·  中国 广东 梅州 电信
中级用户
★★
积分 421
发帖 111
注册 2003-08-29 00:00
22年会员
UID 9153
性别 男
状态 离线
"%systemdrive%\Program Files\快捷方式.txt
从这样的路径读取就会出错?是什么原因
13 发表于 2006-12-07 11:37 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
20年会员
UID 50550
状态 离线
Originally posted by ronin at 2006-12-7 11:19:
"%systemdrive%\Program Files\快捷方式.txt
从这样的路径读取就会出错?是什么原因

"%systemdrive%\Program Files\快捷方式.txt"
引号是否正确使用?
14 发表于 2006-12-07 22:35 ·  中国 广东 梅州 电信
中级用户
★★
积分 421
发帖 111
注册 2003-08-29 00:00
22年会员
UID 9153
性别 男
状态 离线
用了"程序读取报错,无法实现功能,不用"就是说路径不对
15 发表于 2006-12-07 22:52 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  换成如下代码再试试:

@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没商量。
考虑问题复杂化,解决问题简洁化。
论坛跳转: