楼 主
如何从文本内容读取到批处理中
发表于 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没商量。
考虑问题复杂化,解决问题简洁化。
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正