中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助! 关于 xp的桌面变量,在桌面做快捷方式。。
作者:
标题: 求助! 关于 xp的桌面变量,在桌面做快捷方式。。 上一主题 | 下一主题
iovf
初级用户




积分 140
发帖 8
注册 2004-8-18
状态 离线
『楼 主』:  求助! 关于 xp的桌面变量,在桌面做快捷方式。。

想弄个自动给桌面添加快捷方式的批处理。
中文版本桌面是 桌面
韩文版是 바탕 화면

:( 都用desktop好了。。恨微软。
现在的想法是这样的
注册表中
HKLM\SOFTWARE\Classes\CLSID\{00021400-0000-0000-C000-000000000046}
里面有个桌面的名字
reg EXport HKLM\SOFTWARE\Classes\CLSID\{00021400-0000-0000-C000-000000000046} TEMP.REG
REN TEMP.REG TEMP_BAK.REG
TYPE TEMP_BAK.REG >TEMP.TXT
DEL TEMP_BAK.REG
TEMP.TXT 的内容是
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00021400-0000-0000-C000-000000000046}]
@="桌面"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00021400-0000-0000-C000-000000000046}\InProcServer32]
@="shell32.dll"
"ThreadingModel"="Apartment"
以下省略
如何把@="桌面"
中的两个"符号内的文字
弄到一个变量中。。

请大家帮帮忙!!

[ Last edited by namejm on 2006-10-22 at 06:46 ]

2006-10-19 09:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




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


@ECHO OFF
FOR /F "TOKENS=2 DELIMS==" %%I IN ('FIND /I "桌面" TEMP.TXT') DO (
ECHO %%I
PAUSE)  
  代码未测试,有问题请跟帖。


2006-10-19 11:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
NaturalJ0
银牌会员




积分 1181
发帖 533
注册 2006-8-14
状态 离线
『第 3 楼』:  

算是完成功能了,但我还是不太满意,看看其他高人的。
看有没办法不生成临时文件 temp.reg ,有没办法不使用额外的中间变量 skipline 。
为了确保不出错,用的方法是:定位 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00021400-0000-0000-C000-000000000046}] 所在行,然后从它的下一行取。
@echo off
reg EXport HKLM\SOFTWARE\Classes\CLSID\{00021400-0000-0000-C000-000000000046} temp.reg >nul
for /f "delims=[]" %%i in ('find/n "[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00021400-0000-0000-C000-000000000046}]" temp.reg') do set skipline=%%i
for /f "skip=%skipline% tokens=2 delims==" %%a in ('type temp.reg') do ( echo %%~a & GOTO OUT )
:OUT
del temp.reg
pause>nul
[ Last edited by NaturalJ0 on 2006-10-19 at 23:12 ]

2006-10-19 21:52
查看资料  发短消息 网志   编辑帖子  回复  引用回复
iovf
初级用户




积分 140
发帖 8
注册 2004-8-18
状态 离线
『第 4 楼』:  

2楼。
中文版通过。
其他语言版本的。。。。
韩文版的,里面带有空格的。。

还是谢谢大家!!

2006-10-20 10:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




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

  呵呵,我没有说明啊,我的测试环境是WindowsXP SP2中文版的,不知道你是什么版本的。

2006-10-20 10:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
iovf
初级用户




积分 140
发帖 8
注册 2004-8-18
状态 离线
『第 6 楼』:  

我的是 Server2003 SP1 韩文版
XP SP2 中文版
3楼的代码可以了:)
谢谢!!

2006-10-22 04:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




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


  呵呵,我的代码中有一个"('FIND /I "桌面" TEMP.TXT')",里面有中文字符“桌面”,对于韩文版的系统当然不行咯。。。

  还是NaturalJ0兄在F3中的代码比较通用。


2006-10-22 05:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: