中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]关于注册表键值的读取及为文件创建快捷方式
作者:
标题: [求助]关于注册表键值的读取及为文件创建快捷方式 上一主题 | 下一主题
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『楼 主』:  [求助]关于注册表键值的读取及为文件创建快捷方式

设计如下:
批处理所在同目录下有一程序文件Easy RM Tools.exe,使用批处理为其在桌面创建一快捷方式。

1,考虑到桌面不一定在%USERPROFILE%\桌面,所以
读取"HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"
下的"Desktop"的值,并将其设为变量desk。
@ECHO OFF&SETLOCAL ENABLEDELAYEDEXPANSION
for /f "tokens=1,2,*" %%i in ('REG QUERY "HKCU\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\EXPLORER\USER SHELL FOLDERS" ^| FIND /I "Desktop"') DO (
        SET desk=%%k
        ECHO !desk!)
还有别的方法可以实现吗?

2,输出重定向的路径可以是桌面的CLSID吗?
因为可以使用Explorer /select, ::{450D8FBA-AD25-11D0-98A8-0800361B1103}
不知道echo等命令支持不?

3,如何为程序文件Easy RM Tools.exe用批处理创建一快捷方式?
要求:不使用第三方程序,
也不使用.url,即要求为.lnk
尽可能不用vbs脚本。例如下面的:
@echo
set shortCutPath="%USERPROFILE%\桌面\画图.lnk"
echo Dim WshShell,Shortcut>>tmp.vbs
echo Dim path,fso>>tmp.vbs
echo path="%SystemRoot%\system32\mspaint.exe">>tmp.vbs
echo Set fso=CreateObject("Scripting.FileSystemObject")>>tmp.vbs
echo Set WshShell=WScript.CreateObject("WScript.Shell")>>tmp.vbs
echo Set Shortcut=WshShell.CreateShortCut(%shortCutPath%)>>tmp.vbs
echo Shortcut.TargetPath=path>>tmp.vbs
echo Shortcut.Save>>tmp.vbs
"%SystemRoot%\System32\WScript.exe" tmp.vbs
@del /f /s /q tmp.vbs  
pause

4,考虑快捷方式中含参数。
参数-run:rmeditor用来打开Easy RM Tools.exe的剪辑界面
不用参数,则打开Easy RM Tools.exe的压缩界面

[ Last edited by Hanyeguxing on 2009-5-27 at 13:53 ]

2009-5-27 12:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 2 楼』:  

要求:不使用第三方程序,
也不使用.url,即要求为.lnk
尽可能不用vbs脚本。例如下面的:


bat only?
那你还是放弃吧。



S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2009-5-27 14:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 3 楼』:  

http://www.cn-dos.net/forum/viewthread.php?tid=43690
@echo off
call :CreateShortcut "%~dp0Easy RM Tools.exe" -run:rmeditor
pause & exit /b

:CreateShortcut
Set str=%*
CALL Set str=%%str:%1=%%
mshta VBScript:Execute("Set aaa=CreateObject(""WScript.Shell""):Set bbb=aaa.CreateShortcut(aaa.SpecialFolders(""Desktop"") & ""\%~n1.lnk""):bbb.TargetPath=""%~1"":bbb.Arguments=""%str%"":bbb.WorkingDirectory=""%~dp1"":bbb.Save:close")


   此帖被 +2 点积分    点击查看详情   
评分人:【 Hanyeguxing 分数: +2  时间:2009-5-28 00:55


2009-5-28 00:01
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 4 楼』:  

汗~还不是得用VBS。。。



S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2009-5-28 02:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: