标题: 如何从文本内容读取到批处理中
[打印本页]
作者: ronin
时间: 2006-12-6 06:02
标题: 如何从文本内容读取到批处理中
因为批处理没办法建立lnk快捷方式,打算用文本来建立
使用代码
move /y "%systemdrive%\Program Files\快捷方式\系统工具\EVEREST 电脑硬件检测.lnk" "%AllUsersProfile%\「开始」菜单\程序\系统工具\" >nul 2>nul
因为比较多,而且希望用户可以自己修改添加,计划将这些写进文本内容,让客户可以自己添加修改,文本内容模式:
快捷方式.txt
“EVEREST 电脑硬件检测"系统工具
这样读取这个TXT文件就知道应该复制到那个位置
运行环境为WINXP,用途是做XP安装光盘
作者: a9319751
时间: 2006-12-6 06:21
for /f "tokens=1,2 skip=1 delims=;" %%i in (1.txt) do @echo %%i+%%j
pause
你的文本中第一个引号是中文的“,第二个是英文的",建议可以去掉中文的“,英文的最好换成其他的分隔符,能让CMD识别
作者: namejm
时间: 2006-12-6 06:30
顶楼的 快捷方式.txt 这个文件内容是不是以 程序名+程序分类名 的格式保存的?并且要复制成 "%systemdrive%\Program Files\快捷方式\程序分类名\程序名.lnk" 的格式?请详细说明。
作者: ronin
时间: 2006-12-6 08:05
namejm版主说的对,就是打算这样做,分割符号换其它也行
作者: namejm
时间: 2006-12-6 10:25
那就请重新帖一段 快捷方式.txt 的内容出来,最好把文件名和文件分类名用特定符号分隔一下。
作者: ronin
时间: 2006-12-6 11:10
快捷方式.txt:
系统工具#360电脑安全卫士
系统工具#EVEREST电脑硬件检测
桌面#中国游戏中心
网络软件#TCPIP并发连接数破解
开始#超级兔子系统设置
大概就是这样,前面是程序分类,#后面的是程序名
作者: a9319751
时间: 2006-12-7 03:40
for /f "tokens=1,2 delims=#" %%i in (快捷方式.txt) do move /y "%systemdrive%\Program Files\快捷方式\系统工具\%%j.lnk" "%AllUsersProfile%\「开始」菜单\程序\%%i\" >nul 2>nul
pause
作者: ronin
时间: 2006-12-7 08:27
可以用,谢谢
作者: namejm
时间: 2006-12-7 08:53
补充一下:如果文件名有空格,那么,tokens就得换成 tokens=1*。
───────────────────────────────────────────────────────────
在没有测试的情况下,受习惯性思维的影响,导致以上说法不正确,请看以下10F的测试和和11F的分析。
[
Last edited by namejm on 2006-12-6 at 09:21 PM ]
作者: a9319751
时间: 2006-12-7 09:03
Quote: |
Originally posted by namejm at 2006-12-7 08:53:
补充一下:如果文件名有空格,那么,tokens就得换成 tokens=1*。 |
|
测试了下, 有空格也没问题的,不用换*
系统 工具#360电脑安全卫士
系统工具#EVEREST 电脑硬件检测
桌面#中国游戏中心
网络软件#TCPIP并发连接数破解
开始#超级兔子系统设置
作者: lxmxn
时间: 2006-12-7 10:09
因为 delims=# ,所以是以#为分隔符的,空格不会考虑。
作者: ronin
时间: 2006-12-7 11:19
"%systemdrive%\Program Files\快捷方式.txt
从这样的路径读取就会出错?是什么原因
作者: 3742668
时间: 2006-12-7 11:37
Quote: |
Originally posted by ronin at 2006-12-7 11:19:
"%systemdrive%\Program Files\快捷方式.txt
从这样的路径读取就会出错?是什么原因 |
|
"%systemdrive%\Program Files\快捷方式.txt"
引号是否正确使用?
作者: ronin
时间: 2006-12-7 22:35
用了"程序读取报错,无法实现功能,不用"就是说路径不对
作者: namejm
时间: 2006-12-7 22:52
换成如下代码再试试:
@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
作者: ronin
时间: 2006-12-7 23:13
namejm版主,用你的代码使用正常了