中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-10 21:49
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请问将一个程序的快捷方式发送到桌面如何写批处理? 查看 1,761 回复 9
楼 主 请问将一个程序的快捷方式发送到桌面如何写批处理? 发表于 2008-12-04 10:08 ·  中国 上海 电信
初级用户
积分 37
发帖 36
注册 2008-12-02 13:29
17年会员
UID 132662
性别 男
状态 离线
求大虾帮忙写一个批处理,要求首次进入系统时,删除C:\Documents and Settings\Administrator\桌面\腾讯QQ,然后将:D:\Backup\QQ\QQ.exe的快捷方式发送到桌面上,之后将快捷方式修改成“腾讯QQ”,最后是删除批处理本身。
删除批处理文件本身,用del %0可以做到,但是 del C:\Documents and Settings\Administrator\桌面\腾讯QQ不行,用系统变量也不行,郁闷了。另外将D:\Backup\QQ\QQ.exe的快捷方式发送到桌面,这个就更难了。希望大侠不吝赐教。

[ Last edited by cnds on 2008-12-4 at 10:13 ]
2 发表于 2008-12-04 11:19 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
你准备用盗号软件替换QQ么?
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
moniuming +1 2008-12-04 13:46
3 发表于 2008-12-04 11:31 ·  中国 上海 奉贤区 电信
初级用户
积分 37
发帖 36
注册 2008-12-02 13:29
17年会员
UID 132662
性别 男
状态 离线
不是啊。我封装了个系统,QQ用的是YLMF修改过的,但是系统安装完毕之后,用那个快捷方式打开的QQ,一动就死住,没法用。但是用腾讯的QQ.exe发送的快捷方式就没有问题。所以我想做个批处理,加入到GHO中。
4 发表于 2008-12-04 12:04 ·  中国 安徽 马鞍山 联通
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
下面是我以前用过的。可参考
作用:用shortcut.exe把指定目录(d:\ggho)下的gghost.exe在桌面上创建一个“GGhost一键恢复”的快捷键。工作目录为指定的目录。

set ggpath0=d:\ggho
%ggpath0%\tools\shortcut.exe /f:"%userprofile%"\桌面\GGhost一键恢复.lnk /a:c /w:%ggpath0%\ /t:%ggpath0%\gghost.exe >nul
Windows 一键还原
http://www.yjhy.com
5 发表于 2008-12-04 14:20 ·  中国 上海 电信
初级用户
积分 37
发帖 36
注册 2008-12-02 13:29
17年会员
UID 132662
性别 男
状态 离线
我写了2个批处理a和b,b放到启动里,a放在%windir%里,启动b之后,会去执行a,但是执行完a之后,程序就结束了,按照设计,执行完a之后,应该再跳回到到b,执行剩余的语句。但是,我不知道怎么弄连接回到b,“C:\Documents and Settings\Administrator\「开始」菜单\程序\启动”的系统变量不会搞。达人指点。
a:

Sub bat
echo off & cls
echo create_shortcut
start wscript -e:vbs "%~f0"
Exit Sub
End Sub


Set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
set oShellLink = WshShell.CreateShortcut(strDesktop & "\QQ.lnk")
oShellLink.TargetPath = "D:\backup\QQ.exe"
oShellLink.WindowStyle = 3
oShellLink.Hotkey = ""
oShellLink.IconLocation = "D:\backup\QQ.exe, 0"
oShellLink.Description = "快捷方式"
oShellLink.WorkingDirectory = "D:\backup\QQ.exe"
oShellLink.Save

b:

call %windir%\a.bat
del C:\Docume~1\Administrator\桌面\腾讯QQ.lnk
ren C:\Docume~1\Administrator\桌面\qq.lnk 腾讯QQ.lnk
del %windir%\a.bat
del %0

a.bat用于把d:\backup\qq\qq.exe的快捷方式发送桌面,这个功能已经实现。我试图在a.bat中,加入call C:\Docume~1\Administrator\「开始」菜单\程序\启动\b.bat,用于实现执行完a.bat后,跳回到b.bat,但是提示缺少语句。大侠帮忙。

[ Last edited by cnds on 2008-12-4 at 14:23 ]
6 发表于 2008-12-04 17:53 ·  中国 上海 奉贤区 电信
初级用户
积分 37
发帖 36
注册 2008-12-02 13:29
17年会员
UID 132662
性别 男
状态 离线
用这个批处理就可以了:
code:
Sub bat
echo off & cls
echo create_shortcut
start wscript -e:vbs "%~f0"
Exit Sub
End Sub

Set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
set oShellLink = WshShell.CreateShortcut(strDesktop & "\腾讯QQ.lnk")
oShellLink.TargetPath = "D:\backup\QQ.exe"
oShellLink.WindowStyle = 3
oShellLink.Hotkey = ""
oShellLink.IconLocation = "D:\backup\QQ.exe, 0"
oShellLink.Description = "快捷方式"
oShellLink.WorkingDirectory = "D:\backup\QQ.exe"
oShellLink.Save

功能是实现了,但是不知道怎么样删除自身,高手请指教。

[ Last edited by cnds on 2008-12-4 at 17:55 ]
7 Re 6楼 发表于 2008-12-04 17:57 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
在b里面删a不行么?
8 发表于 2008-12-04 20:39 ·  中国 上海 奉贤区 电信
初级用户
积分 37
发帖 36
注册 2008-12-02 13:29
17年会员
UID 132662
性别 男
状态 离线
不可以。运行b.bat之后,执行call %windir%\a.bat,但是执行完a.bat后,程序回不到b.bat来了。
9 发表于 2008-12-04 21:34 ·  中国 新疆 石河子 电信
初级用户
积分 50
发帖 25
注册 2007-03-29 14:07
19年会员
UID 83301
性别 男
状态 离线
我认为你事先做好快捷方式复制过去会是最简单的方法。
10 发表于 2008-12-04 21:38 ·  中国 上海 奉贤区 电信
初级用户
积分 37
发帖 36
注册 2008-12-02 13:29
17年会员
UID 132662
性别 男
状态 离线
建立快捷方式是问题的根源。只要实现这点,其他相对好解决。
论坛跳转: