无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 14002|回复: 69
打印 上一主题 下一主题

求为大量绿色软件建立桌面快捷方式的批处理(已解决)

[复制链接]
跳转到指定楼层
#
发表于 2012-4-9 13:32:06 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
白天用公司电脑,晚上用家里电脑,有时用朋友家电脑,但软件、资料和记录之类的无法保持一致相当不爽,所以现在改用绿色版存在移动硬盘上,差不多有100个左右吧,但每次要用需要进入无数个文件夹里打开这些软件或在新机、还原系统后建立桌面快捷方式是件头痛的事,所以求大侠帮我弄个建立桌面快捷方式的批处理的样本



条件1:批处理是放在移动硬盘根目录里运行
条件2:移动硬盘里的软件路径(注意不是单文件的):

            飞信是\PETOOLS\Fetion\Fetion.exe                 快捷方式名称是“飞信”
              QQ是\PETOOLS\QQ\QQ.exe                            快捷方式名称是"QQ"
              Foxmail是\PETOOLS\Foxmail\Foxmail.EXE   快捷方式名称是"Foxmail"
              迅雷是\PETOOLS\Thunder\Thunder.exe       快捷方式名称是"迅雷"

上面路径我没有写盘符,创建快捷方式时,需要由批处理自己判断盘符,快捷方式名称尽量做到可以自定义。

条件3:XP、WIN7 32/64下都能用(也会在PE3.0下用,不过那个可以在PE里搞掂)



2011mking、monitor20大侠的方案完全实现了我的愿望,非常感谢各位大哥的热心帮助,特别是2011mking、monitor20大侠,非常感谢!

[ 本帖最后由 极度凶残 于 2012-4-10 14:34 编辑 ]
69#
发表于 2012-4-16 23:19:24 | 只看该作者
呵呵,来晚了,这个小工具我早做了
http://bbs.wuyou.net/forum.php?m ... p;extra=&page=1
不知道合不合适?
回复

使用道具 举报

68#
发表于 2012-4-11 09:32:31 | 只看该作者

为什么不用音速启动呢

为什么不用音速启动呢,完全达到这个要求,自己创建所需要的文件快捷方式,用的是相对路径,不存在不同盘符的问题,每次只手动运行音速启动即可找到所有自己创建的快捷方式,支持拖动分类,非常方便。

图中显示的是相对路径。


xp win7/32 肯定可用。手头没有win7/64,没法测试。

[ 本帖最后由 hero8000 于 2012-4-11 09:46 编辑 ]
回复

使用道具 举报

67#
发表于 2012-4-10 22:13:33 | 只看该作者
原帖由 极度凶残 于 2012-4-10 20:46 发表


嗯!这回可以了,非常感谢!

提示内容、快捷方式目录,一切的一切都可以DIY,另外,我提供的编译版本的图标是一个快捷方式箭头图标,并非没有图标哦 ^_^
回复

使用道具 举报

66#
发表于 2012-4-10 21:10:45 | 只看该作者
我还提供一个思路,就是用pecmd的内嵌脚本来做,这个就只要一个文件就解决了。
回复

使用道具 举报

65#
 楼主| 发表于 2012-4-10 20:46:51 | 只看该作者
原帖由 monitor20 于 2012-4-10 19:25 发表
已更正,原帖代码被论坛程序的URL识别给改了,所以出错……
还发在61楼,内容(包括配置文件)已更新!

嗯!这回可以了,非常感谢!
回复

使用道具 举报

64#
发表于 2012-4-10 19:25:47 | 只看该作者
已更正,原帖代码被论坛程序的URL识别给改了,所以出错……
还发在61楼,内容(包括配置文件)已更新!
回复

使用道具 举报

63#
 楼主| 发表于 2012-4-10 17:06:18 | 只看该作者
原帖由 monitor20 于 2012-4-10 16:35 发表
你把你的脚本文件传上来我看下,另外,脚本目录要包含一份有效的配置文件!最好把错误截图也发上来^_^(理解程序后,你可以自己修改内容)

我没做任何改动,只把你的代码粘贴上去编译为EXE就这样
只要总数为非0就会出现错误界面


创建快捷方式.rar (330.59 KB, 下载次数: 20)

[ 本帖最后由 极度凶残 于 2012-4-10 17:11 编辑 ]
回复

使用道具 举报

62#
发表于 2012-4-10 16:35:07 | 只看该作者
你把你的脚本文件传上来我看下,另外,脚本目录要包含一份有效的配置文件!最好把错误截图也发上来^_^(理解程序后,你可以自己修改内容)
回复

使用道具 举报

61#
 楼主| 发表于 2012-4-10 15:43:26 | 只看该作者
原帖由 monitor20 于 2012-4-10 14:42 发表
完全可以!我然后再改下程序。(中午时间紧,本来设想的许多功能来不及实现,比如配置向导,程序文件搜索,命令行参数支持,快捷方式描述,等等!匆忙发布,后期将不断加强其功能,提高其应用范围。图标是我在编译的时候随 ...

您的我看不到图标啊





用您的源代码重新编译的话,第一次运行创建配置文件正常,修改配置文件后再运行出错




[ 本帖最后由 极度凶残 于 2012-4-10 15:48 编辑 ]
回复

使用道具 举报

60#
发表于 2012-4-10 14:42:48 | 只看该作者
完全可以!我然后再改下程序。(中午时间紧,本来设想的许多功能来不及实现,比如配置向导,程序文件搜索,命令行参数支持,快捷方式描述,等等!匆忙发布,后期将不断加强其功能,提高其应用范围。图标是我在编译的时候随便找的,你可以用源代码重新编译一下,选一个好看的图标!)

[ 本帖最后由 monitor20 于 2012-4-10 15:33 编辑 ]
回复

使用道具 举报

59#
 楼主| 发表于 2012-4-10 14:25:57 | 只看该作者
原帖由 monitor20 于 2012-4-10 14:02 发表
中英文系统通吃,XP、Windows7通吃,第一次运行会自动创建配置文件,配置文件如下:

[程序设置]
;程序运行设置,所有路径均不需要引号,下同
创建位置=开始菜单
;可填“桌面”、“开始菜单”,默认为“桌 ...

刚刚用了一下,非常不错,那个AutoShortcut.exe要是有个漂亮的图标就完美了,还有快捷方式卸载功能那就天下无敌了,还有个问题,假如有一天因快捷方式太多,我想创建到桌面一个叫“绿色软件”的文件夹里,照您的说明,应该不行是吧?

[ 本帖最后由 极度凶残 于 2012-4-10 14:31 编辑 ]
回复

使用道具 举报

58#
发表于 2012-4-10 14:02:16 | 只看该作者
中英文系统通吃,XP、Windows7通吃,第一次运行会自动创建配置文件,配置文件如下:

[程序设置]
;程序运行设置,所有路径均不需要引号,下同
创建位置=开始菜单
;可填“桌面”、“开始菜单”,默认为“桌面”,填其他的没用哦!
[快捷方式]
;如果不够用,自己再编辑,格式如下
;程序n=路径
;名称n=自定义名称

;总数大些没啥,少了快捷方式会缺下!
;这是个例子
;程序1=TOOLS\QQ\QQ.exe
;名称1=腾讯QQ

;其中,“TOOLS\QQ\QQ.exe”代表 “<程序所在盘符>:\TOOLS\QQ\QQ.exe” ,无需填入盘符号的!
;所以说,程序可以放置在任意目录,不一定要在根目录下!


总数=100
程序1=
名称1=

程序2=
名称2=

程序3=
名称3=



可能会被360卡住,纯属误报,放心使用!

AutoIt3源码如下(没什么高明之处,放出来吧):

TraySetClick(0)
If FileExists(@ScriptDir & "\设置.INI") = 0 Then
FileInstall(".\设置.INI", @ScriptDir & "\设置.INI")
MsgBox(0, "程序初始化", "配置文件创建完毕,请设置好后运行程序 !", 5)
Exit
Else
$LinkDir = IniRead(@ScriptDir & "\设置.INI", "程序设置", "创建位置", "桌面")
$LinkNumber = IniRead(@ScriptDir & "\设置.INI", "快捷方式", "总数", "0")
If $LinkNumber = 0 Then
  MsgBox(0, "出现小错误", "快捷方式总数为0,程序操作结束 !", 5)
  Exit
Else
  If $LinkDir = "开始菜单" Then
   DirCreate(@ProgramsCommonDir & "\快捷方式")
   $LinkDir = @ProgramsCommonDir & "\快捷方式"
  Else
   $LinkDir = @DesktopCommonDir
  EndIf
  $CurDrive = StringLeft(@ScriptDir, 2)
  For $i = 1 To $LinkNumber
   $Exec = $CurDrive & "\" & IniRead(@ScriptDir & "\设置.INI", "快捷方式", "程序" & $i, "")
   $Link = $LinkDir & "\" & IniRead(@ScriptDir & "\设置.INI", "快捷方式", "名称" & $i, "") & ".lnk"
   $j = StringInStr($Exec, "\", 0, -1)
   $Exec_Dir = StringLeft($Exec, $j - 1)
   FileCreateShortcut($Exec, $Link, $Exec_Dir)
  Next
  MsgBox(0, "执行完毕", "快捷方式创建完毕,程序操作结束 !", 3)
  Exit
EndIf
EndIf


本来还想加入快捷方式卸载功能,时间紧张,然后弄吧!

AutoIt3最新中文版下载地址:

http://www.autoitx.com/thread-12964-1-1.html?sid=glvQ22

自己下载研究吧,帮助文件超详细,比批处理、VBS功能都强!

[ 本帖最后由 monitor20 于 2012-4-10 19:23 编辑 ]

AutoShortcut.part1.rar

200 KB, 下载次数: 47, 下载积分: 无忧币 -2

AutoShortcut.part2.rar

101.19 KB, 下载次数: 46, 下载积分: 无忧币 -2

AutoShortcut(源代码).7z

1.09 KB, 下载次数: 24, 下载积分: 无忧币 -2

回复

使用道具 举报

57#
发表于 2012-4-10 13:23:23 | 只看该作者
原帖由 极度凶残 于 2012-4-10 13:10 发表

这个是你的吧:
@echo off
if exist z: subst z: /d
subst z: "Program Files" >nul
ping 127.1 -n 3 >nul
if exist "%userprofile%\desktop" (copy z:\shortcut\* "%userprofile%\desktop\" >nul) else ...




其实就是把那些绿色软件所在的目录映射为一个单独的指定的盘符,然后再在那个映射完的盘符里打开绿色软件并创建快捷方式然后备份快捷方式到shortcut目录。这样。。。。不想解释太多了。哈哈。


对了。第一次要手动创建好快捷方式(必需在你映射好之后的盘符中的绿色软件里创建)。再放到shortcut目录或者你自己定义的目录。

第一次要先手动执行subst z: "petool"这一个命令。

[ 本帖最后由 kingshui 于 2012-4-10 13:29 编辑 ]
回复

使用道具 举报

56#
发表于 2012-4-10 13:18:58 | 只看该作者
原帖由 friend8179 于 2012-4-10 13:16 发表
木有尝试本人的么?

会让你爽的。。。


人家是要定制,你那个是凡是exe都到桌面了。
回复

使用道具 举报

55#
 楼主| 发表于 2012-4-10 13:18:36 | 只看该作者
原帖由 2011mking 于 2012-4-10 13:12 发表


我知道问题出在哪了,是shortcut的版本不对,上面的是我随便网上找一下下的。
你用我现在用的替换一下就可以了。

请先用调试法确定一下写法和位置。

Very good!这次OK了,非常感谢!
回复

使用道具 举报

54#
发表于 2012-4-10 13:12:52 | 只看该作者
原帖由 极度凶残 于 2012-4-10 13:10 发表


我知道问题出在哪了,是shortcut的版本不对,上面的是我随便网上找一下下的。
你用我现在用的替换一下就可以了。

请先用调试法确定一下写法和位置。

[ 本帖最后由 2011mking 于 2012-4-10 13:15 编辑 ]

SHORTCUT.rar

5.78 KB, 下载次数: 47, 下载积分: 无忧币 -2

回复

使用道具 举报

53#
 楼主| 发表于 2012-4-10 13:10:19 | 只看该作者
原帖由 kingshui 于 2012-4-10 13:04 发表
怎么不试下我发的呢?哈哈。

这个是你的吧:
@echo off
if exist z: subst z: /d
subst z: "Program Files" >nul
ping 127.1 -n 3 >nul
if exist "%userprofile%\desktop" (copy z:\shortcut\* "%userprofile%\desktop\" >nul) else copy z:\shortcut\* "%userprofile%\桌面\" >nul
pause


由于现在软件目录是PETOOLS,我把你的改为下面那样,也不行(在根目录运行)
@echo off
if exist z: subst z: /d
subst z: "PETOOLS" >nul
ping 127.1 -n 3 >nul
if exist "%userprofile%\desktop" (copy z:\shortcut\* "%userprofile%\desktop\" >nul) else copy z:\shortcut\* "%userprofile%\桌面\" >nul
pause


里面的Z: 代表什么?


坑爹了...多了个Z盘出来

[ 本帖最后由 极度凶残 于 2012-4-10 13:17 编辑 ]

Ashampoo_Snap_2012.04.10_13h16m31s_015_.jpg (51.87 KB, 下载次数: 100)

Ashampoo_Snap_2012.04.10_13h16m31s_015_.jpg
回复

使用道具 举报

52#
发表于 2012-4-10 13:04:30 | 只看该作者
怎么不试下我发的呢?哈哈。
回复

使用道具 举报

51#
 楼主| 发表于 2012-4-10 13:01:47 | 只看该作者
原帖由 2011mking 于 2012-4-10 12:59 发表
"Desktop"改成"桌面" 试试

都试过了........



回复

使用道具 举报

50#
发表于 2012-4-10 12:59:54 | 只看该作者
"Desktop"改成"桌面" 试试
回复

使用道具 举报

49#
 楼主| 发表于 2012-4-10 12:59:03 | 只看该作者
原帖由 2011mking 于 2012-4-10 12:55 发表
多了一个\软件不认了。
shortcut -f -t "%CD%\PEtools\QQ\QQ.exe" -n "%USERPROFILE%\Desktop\腾迅QQ" -d "%CD%\PEtools\QQ"
改为:
shortcut -f -t "%CD%PEtools\QQ\QQ.exe" -n "%USERPROFILE%\Desktop\腾迅 ...

去掉也不行......
没想到一个小小的快捷方式这么难侍候







[ 本帖最后由 极度凶残 于 2012-4-10 13:01 编辑 ]
回复

使用道具 举报

48#
发表于 2012-4-10 12:55:09 | 只看该作者
多了一个\软件不认了。
shortcut -f -t "%CD%\PEtools\QQ\QQ.exe" -n "%USERPROFILE%\Desktop\腾迅QQ" -d "%CD%\PEtools\QQ"
改为:
shortcut -f -t "%CD%PEtools\QQ\QQ.exe" -n "%USERPROFILE%\Desktop\腾迅QQ" -d "%CD%PEtools\QQ"

如果不行,去掉最前一句的引号
shortcut -f -t  %CD%PEtools\QQ\QQ.exe  -n "%USERPROFILE%\Desktop\腾迅QQ" -d "%CD%PEtools\QQ"

[ 本帖最后由 2011mking 于 2012-4-10 12:56 编辑 ]
回复

使用道具 举报

47#
 楼主| 发表于 2012-4-10 12:52:48 | 只看该作者
原帖由 2011mking 于 2012-4-10 12:49 发表
shortcut.zip你解包放了吗?不会是直接就放了吧?解包后应该是shortcut.exe哦

当然解包了,不会发生这么低级的错误的
回复

使用道具 举报

46#
发表于 2012-4-10 12:49:32 | 只看该作者
shortcut.zip你解包放了吗?不会是直接就放了吧?解包后应该是shortcut.exe哦
回复

使用道具 举报

45#
 楼主| 发表于 2012-4-10 12:47:42 | 只看该作者
原帖由 2011mking 于 2012-4-10 12:43 发表
%CD%\PETOOLS\shortcut  改成shortcut
shortcut 和那个cmd放在PETOOLS的上级目录,估计你那应是U盘根目录。

创建工具快捷方式.Cmd
@echo off
PUSHD %~dp0
Rem shortcut -f -t 程序位置 -n 快捷方式位置  ...

也试过了,不行哦,还是显示无效启动项,你可以自己试试




[ 本帖最后由 极度凶残 于 2012-4-10 12:51 编辑 ]
回复

使用道具 举报

44#
发表于 2012-4-10 12:43:00 | 只看该作者
%CD%\PETOOLS\shortcut  改成shortcut
shortcut 和那个cmd放在PETOOLS的上级目录,估计你那应是U盘根目录。

创建工具快捷方式.Cmd
@echo off
PUSHD %~dp0
Rem shortcut -f -t 程序位置 -n 快捷方式位置 -d 程序开始位置
shortcut -f -t "%CD%\PEtools\QQ\QQ.exe" -n "%USERPROFILE%\Desktop\腾迅QQ" -d "%CD%\PEtools\QQ"
shortcut -f -t "%CD%\PEtools\Fetion\Fetion.exe" -n "%USERPROFILE%\Desktop\飞信Fetion" -d "%CD%\PEtools\Fetion"
shortcut -f -t "%CD%\PEtools\Thunder\Thunder.exe" -n "%USERPROFILE%\Desktop\迅雷下载" -d "%CD%\PEtools\Thunder"
shortcut -f -t "%CD%\PEtools\Foxmail\Foxmail.exe" -n "%USERPROFILE%\Desktop\邮件Foxmail" -d "%CD%\PEtools\Foxmail"

可以去掉@echo off
如下测试:

1.cmd

PUSHD %~dp0
Rem shortcut -f -t 程序位置 -n 快捷方式位置 -d 程序开始位置
shortcut -f -t "%CD%\PEtools\QQ\QQ.exe" -n "%USERPROFILE%\Desktop\腾迅QQ" -d "%CD%\PEtools\QQ"
shortcut -f -t "%CD%\PEtools\Fetion\Fetion.exe" -n "%USERPROFILE%\Desktop\飞信Fetion" -d "%CD%\PEtools\Fetion"
shortcut -f -t "%CD%\PEtools\Thunder\Thunder.exe" -n "%USERPROFILE%\Desktop\迅雷下载" -d "%CD%\PEtools\Thunder"
shortcut -f -t "%CD%\PEtools\Foxmail\Foxmail.exe" -n "%USERPROFILE%\Desktop\邮件Foxmail" -d "%CD%\PEtools\Foxmail"
pause

然后看看提示是哪里的问题

[ 本帖最后由 2011mking 于 2012-4-10 12:46 编辑 ]
回复

使用道具 举报

43#
 楼主| 发表于 2012-4-10 12:41:38 | 只看该作者
原帖由 2011mking 于 2012-4-10 12:33 发表


不生成快捷方式可能是 shortcut要与cmd放在同一级,你改一下试试。注意去掉cmd中shortcut前面的路径指定


创建工具快捷方式.Cmd
@echo off
PUSHD %~dp0
Rem shortcut -f -t 程序位置 -n 快捷方式位置 ...

2个文件都放根目录也不行

QQ路径是:H:\PETOOLS\QQ\QQ.EXE

创建工具快捷方式.Cmd的内容是:
@echo off
PUSHD %~dp0
Rem shortcut -f -t 程序位置 -n 快捷方式位置 -d 程序开始位置
%CD%\shortcut -f -t "%CD%\petools\QQ\QQ.exe" -n "%USERPROFILE%\Desktop\腾迅QQ" -d "%CD%\petools\QQ"

这样也不行:
@echo off
PUSHD %~dp0
Rem shortcut -f -t 程序位置 -n 快捷方式位置 -d 程序开始位置
shortcut -f -t "%CD%\petools\QQ\QQ.exe" -n "%USERPROFILE%\Desktop\腾迅QQ" -d "%CD%\petools\QQ"


2个文件都放PETOOLS目录也不行

创建工具快捷方式.Cmd的内容是:
@echo off
PUSHD %~dp0
Rem shortcut -f -t 程序位置 -n 快捷方式位置 -d 程序开始位置
%CD%\PETOOLS\shortcut -f -t "%CD%\petools\QQ\QQ.exe" -n "%USERPROFILE%\Desktop\腾迅QQ" -d "%CD%\petools\QQ"

[ 本帖最后由 极度凶残 于 2012-4-10 12:44 编辑 ]
回复

使用道具 举报

42#
发表于 2012-4-10 12:33:20 | 只看该作者
原帖由 极度凶残 于 2012-4-10 12:25 发表



你的方法生不成快捷方式啊


下图是手动建的:

140631


不生成快捷方式可能是 shortcut要与cmd放在同一级,你改一下试试。注意去掉cmd中shortcut前面的路径指定


创建工具快捷方式.Cmd
@echo off
PUSHD %~dp0
Rem shortcut -f -t 程序位置 -n 快捷方式位置 -d 程序开始位置
shortcut -f -t "%CD%\PEtools\QQ\QQ.exe" -n "%USERPROFILE%\Desktop\腾迅QQ" -d "%CD%\PEtools\QQ"
shortcut -f -t "%CD%\PEtools\Fetion\Fetion.exe" -n "%USERPROFILE%\Desktop\飞信Fetion" -d "%CD%\PEtools\Fetion"
shortcut -f -t "%CD%\PEtools\Thunder\Thunder.exe" -n "%USERPROFILE%\Desktop\迅雷下载" -d "%CD%\PEtools\Thunder"
shortcut -f -t "%CD%\PEtools\Foxmail\Foxmail.exe" -n "%USERPROFILE%\Desktop\邮件Foxmail" -d "%CD%\PEtools\Foxmail"

[ 本帖最后由 2011mking 于 2012-4-10 12:41 编辑 ]
回复

使用道具 举报

41#
 楼主| 发表于 2012-4-10 12:25:33 | 只看该作者
原帖由 2011mking 于 2012-4-10 12:18 发表


昏死~没理由不成功的。检查一下 生成的快捷方式的属性,然后自已发送一个快捷方式,对比一下路径,看哪出错了。



你的第二个方法生不成快捷方式啊


下图是手动建的:




这个是第一个办法生出来的:



[ 本帖最后由 极度凶残 于 2012-4-10 12:35 编辑 ]
回复

使用道具 举报

40#
 楼主| 发表于 2012-4-10 12:21:23 | 只看该作者
原帖由 dvd008 于 2012-4-10 12:00 发表
还是用我的奔方法,可靠

麻烦一次,以后省事

你的这句我不明白怎样用:CMD:pecmd.exe LOAD \PETOOLS\WINPE.INI

我只试建立QQ的桌面快捷,但不行,可能我搞错哪里了

我是这样的:
软件路径:H:\PETOOLS\QQ\QQ.EXE
INI路径:H\PETOOLS\WINPE.INI
PECMD.EXE路径:H:\PECMD.EXE
建立快捷方式.CMD路径:H:\建立快捷方式.CMD


建立快捷方式.CMD内容:
CMD:pecmd.exe LOAD \PETOOLS\WINPE.INI

WINPE.INI内容:_SUB Outer_Reload
        ENVI Programs=%USERPROFILE%\「开始」菜单\程序
        ENVI Desktop=%USERPROFILE%\桌面
        ENVI QuickLaunch=%USERPROFILE%\Application Data\Microsoft\Internet Explorer\Quick Launch
_END
FIND Explorer.EXE,CALL Outer_Reload
ENVI CurDir=%CurDrv%\PETOOLS
LINK %Desktop%\QQ,%CurDir%\QQ\QQ.exe
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-7-9 18:35

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表