Board logo

标题: [系统相关] [已解决]批处理如何在桌面创建目标程序带参数的快捷方式? [打印本页]

作者: ygqiang    时间: 2014-12-3 00:25     标题: [已解决]批处理如何在桌面创建目标程序带参数的快捷方式?

本帖最后由 pcl_test 于 2016-7-17 12:14 编辑

[已解决]如何用bat批处理,在桌面建立“关机.lnk”快捷方式(带参数的特殊情况)?
快捷命令是:C:\WINDOWS\system32\shutdown.exe -s -t 1

下面2个bat命令,
因为带了 -s -t 2  这参数。虽然也可以创建快捷方式,但却不能运行。
如果不带这个参数,是可以创建快捷方式并运行的。
  1. ;创建文件的快捷方式
  2. set path=C:\WINDOWS\system32\shutdown.exe -s -t 2
  3. rem 要创建快捷方式的文件
  4. set result="%USERPROFILE%\桌面\关机.lnk"
  5. rem 要创建快捷方式的地方
  6. echo [InternetShortcut] >> %result%
  7. echo url="%path%" >> %result%
  8. rem url一定要写
  9. echo IconIndex=0 >> %result%
  10. echo IconFile=%path% >> %result%
  11. -----------------------------------------------
  12. ;创建exe文件的lnk快捷方式
  13. set SrcFile=%SystemRoot%\system32\shutdown -s -t 2
  14. set LnkFile==%USERPROFILE%\桌面\关机
  15. call :CreateShort "%SrcFile%" "%LnkFile%"
  16. goto :eof
  17. ::Arguments              目标程序参数
  18. ::Description            快捷方式备注
  19. ::FullName               返回快捷方式完整路径
  20. ::Hotkey                 快捷方式快捷键
  21. ::IconLocation           快捷方式图标,不设则使用默认图标
  22. ::TargetPath             目标
  23. ::WindowStyle            窗口启动状态
  24. ::WorkingDirectory       起始位置
  25. :CreateShort
  26. mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(""%~2.lnk""):b.TargetPath=""%~1"":b.WorkingDirectory=""%~dp1"":b.Save:close")
复制代码

作者: apang    时间: 2014-12-3 00:31

目测  -s -t 2 应该算 参数
作者: ygqiang    时间: 2014-12-3 00:57

目测  -s -t 2 应该算 参数
apang 发表于 2014-12-3 00:31



    对啊。

就是因为带了 -s -t 2  这参数。虽然也可以创建快捷方式,但却不能运行。
如果不带这个参数,是可以创建快捷方式并运行的。
作者: czjt1234    时间: 2014-12-3 07:03

set path=C:\WINDOWS\system32\shutdown.exe -s -t 2

set "path=C:\WINDOWS\system32\shutdown.exe -s -t 2"
作者: ygqiang    时间: 2014-12-3 07:26

set path=C:\WINDOWS\system32\shutdown.exe -s -t 2

set "path=C:\WINDOWS\system32\shutdown.exe -s - ...
czjt1234 发表于 2014-12-3 07:03



    set "path=C:\WINDOWS\system32\shutdown.exe -s -t 2"

为啥要将path这个变量,放在""里面呢?
作者: apang    时间: 2014-12-3 09:11

回复 3# ygqiang
  1. ::创建exe文件的lnk快捷方式
  2. @echo off
  3. set "SrcFile=%SystemRoot%\system32\shutdown.exe"
  4. set "Args=-s -t 2"
  5. set "LnkFile=关机.LNK"
  6. call :CreateShort "%SrcFile%" "%Args%" "%LnkFile%"
  7. pause & goto :eof
  8. ::Arguments              目标程序参数
  9. ::Description            快捷方式备注
  10. ::FullName               返回快捷方式完整路径
  11. ::Hotkey                 快捷方式快捷键
  12. ::IconLocation           快捷方式图标,不设则使用默认图标
  13. ::TargetPath             目标
  14. ::WindowStyle            窗口启动状态
  15. ::WorkingDirectory       起始位置
  16. :CreateShort
  17. mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""DeskTop"") & ""\%~3""):b.TargetPath=""%~1"":b.WorkingDirectory=""%~dp1"":b.Arguments=""%~2"":b.Save:close")
复制代码

作者: ygqiang    时间: 2014-12-3 09:22

回复  ygqiang
apang 发表于 2014-12-3 09:11



    多谢。不过你这个bat代码,通用性如何?

其实我是想在下面位置建立快捷方式:
%userprofile%\「开始」菜单\关机.lnk
作者: apang    时间: 2014-12-3 09:51

回复 7# ygqiang


    比你的通用性好。不同的系统,桌面路径不一样,%userprofile%\桌面 只适用于中文xp系统

另外,startmenu 对应的是 开始菜单
作者: ygqiang    时间: 2014-12-3 09:57

回复  ygqiang
apang 发表于 2014-12-3 09:11



    多谢。。。


你给的代码可以在桌面生成快捷方式,并且可以运行。

xp系统下,如何修改成在下面位置建立快捷方式?
%userprofile%\「开始」菜单\关机.lnk

或者win7系统下,如何修改成在下面位置建立快捷方式?
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\accessories\
  1. ::创建exe文件的lnk快捷方式
  2. @echo off
  3. set "SrcFile=%SystemRoot%\system32\shutdown.exe"
  4. set "Args=-s -t 2"
  5. set "LnkFile=关机.LNK"
  6. call :CreateShort "%SrcFile%" "%Args%" "%LnkFile%"
  7. pause & goto :eof
  8. ::Arguments              目标程序参数
  9. ::Description            快捷方式备注
  10. ::FullName               返回快捷方式完整路径
  11. ::Hotkey                 快捷方式快捷键
  12. ::IconLocation           快捷方式图标,不设则使用默认图标
  13. ::TargetPath             目标
  14. ::WindowStyle            窗口启动状态
  15. ::WorkingDirectory       起始位置
  16. :CreateShort
  17. mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""DeskTop"") & ""\%~3""):b.TargetPath=""%~1"":b.WorkingDirectory=""%~dp1"":b.Arguments=""%~2"":b.Save:close")
复制代码

作者: apang    时间: 2014-12-3 10:20

回复 9# ygqiang


    晕死,你在代码中找找哪里有DeskTop,把它改成 StartMenu
作者: ygqiang    时间: 2014-12-3 10:28

回复  ygqiang


    晕死,你在代码中找找哪里有DeskTop,把它改成 StartMenu
apang 发表于 2014-12-3 10:20



   
回复  ygqiang


    晕死,你在代码中找找哪里有DeskTop,把它改成 StartMenu
apang 发表于 2014-12-3 10:20



    多谢。再请教1个小问题。。


下面这个bat命令,在「开始」菜单建立快捷方式,并且可以运行。

win7系统下,如何修改成在下面位置建立快捷方式?
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\accessories\

startmenu改成accessories,好像也没用啊。
  1. ::创建exe文件的lnk快捷方式
  2. @echo off
  3. set "SrcFile=%SystemRoot%\system32\shutdown.exe"
  4. set "Args=-s -t 2"
  5. set "LnkFile=关机.LNK"
  6. call :CreateShort "%SrcFile%" "%Args%" "%LnkFile%"
  7. pause & goto :eof
  8. ::Arguments              目标程序参数
  9. ::Description            快捷方式备注
  10. ::FullName               返回快捷方式完整路径
  11. ::Hotkey                 快捷方式快捷键
  12. ::IconLocation           快捷方式图标,不设则使用默认图标
  13. ::TargetPath             目标
  14. ::WindowStyle            窗口启动状态
  15. ::WorkingDirectory       起始位置
  16. :CreateShort
  17. mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""startmenu"") & ""\%~3""):b.TargetPath=""%~1"":b.WorkingDirectory=""%~dp1"":b.Arguments=""%~2"":b.Save:close")
复制代码

作者: ygqiang    时间: 2014-12-3 11:33

已经解决。
  1. ::创建exe文件的lnk快捷方式
  2. @echo off
  3. set "SrcFile=%SystemRoot%\system32\shutdown.exe"
  4. set "Args=-s -t 2"
  5. set "LnkFile=关机.LNK"
  6. call :CreateShort "%SrcFile%" "%Args%" "%LnkFile%"
  7. pause & goto :eof
  8. ::Arguments              目标程序参数
  9. ::Description            快捷方式备注
  10. ::FullName               返回快捷方式完整路径
  11. ::Hotkey                 快捷方式快捷键
  12. ::IconLocation           快捷方式图标,不设则使用默认图标
  13. ::TargetPath             目标
  14. ::WindowStyle            窗口启动状态
  15. ::WorkingDirectory       起始位置
  16. :CreateShort
  17. mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""DeskTop"") & ""\%~3""):b.TargetPath=""%~1"":b.WorkingDirectory=""%~dp1"":b.Arguments=""%~2"":b.Save:close")
复制代码

作者: freesoft00    时间: 2015-3-19 12:42

回复 6# apang




    ::IconLocation
我想修改快捷方式的图标文件指向,这个添加到哪里?谢谢!
作者: pcl_test    时间: 2015-3-19 13:22

本帖最后由 pcl_test 于 2015-3-22 12:22 编辑

回复 13# freesoft00
  1. ::创建exe文件的lnk快捷方式
  2. @echo off
  3. set "SrcFile=%SystemRoot%\system32\shutdown.exe"
  4. set "Args=-s -t 2"
  5. set "LnkFile=关机.LNK"
  6. set "IconPath=C:\1.ico"
  7. call :CreateShort "%SrcFile%" "%Args%" "%LnkFile%" "%IconPath%"
  8. pause & goto :eof
  9. ::Arguments              目标程序参数
  10. ::Description            快捷方式备注
  11. ::FullName               返回快捷方式完整路径
  12. ::Hotkey                 快捷方式快捷键
  13. ::IconLocation           快捷方式图标,不设则使用默认图标
  14. ::TargetPath             目标
  15. ::WindowStyle            窗口启动状态
  16. ::WorkingDirectory       起始位置
  17. :CreateShort
  18. mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""DeskTop"") & ""\%~3""):b.TargetPath=""%~1"":b.WorkingDirectory=""%~dp1"":b.Arguments=""%~2"":b.IconLocation=""%~4"":b.Save:close")
复制代码

作者: freesoft00    时间: 2015-3-19 22:49

回复 14# pcl_test


    好的,再次谢谢!
作者: freesoft00    时间: 2015-3-21 12:00

本帖最后由 freesoft00 于 2015-3-21 13:38 编辑

回复 14# pcl_test
在64位的系统中,手动打开
Z:\Windows\SysWOW64\cmd.exe 是管理员权限,然后运行编写的创建快捷方式的批处理,会提示脚本错误。
而在64位的cmd中运行没有问题。
请看一下是哪里的问题?我的测试环境是win8.1

脚本执行的很慢,等老半天才弹出来脚本错误,然后才能继续执行批处理下面的任务。
作者: freesoft00    时间: 2015-3-21 13:36

实在想不出什么好的方法,想用批处理创建url形式的快捷方式,但是不行在win8.1中
创建后的快捷方式路径直接被系统添加上来http://后面是设定的路径。
  1. set "path="%SYSTEMDRIVE%\Program Files\Internet Explorer\iexplore.exe""
  2. set "name=Internet Explorer"
  3. set m="%USERPROFILE%\Desktop\%name%.url"
  4. echo [InternetShortcut] >>%m%
  5. echo URL="%path%" >>%m%
  6. echo IconIndex=1 >>%m%
  7. echo IconFile="%SYSTEMDRIVE%\Program Files\Internet Explorer\iexplore.exe" >>%m%
复制代码

作者: freesoft00    时间: 2015-3-21 13:37

而且图标也是网页的图标,被系统自动设置为了url.dll的图标。
作者: pcl_test    时间: 2015-3-21 21:07

本帖最后由 pcl_test 于 2016-6-4 23:31 编辑

回复 16# freesoft00
直接双击运行批处理文件不行吗?怎么还要手动打开cmd?把错误提示截图看看
作者: pcl_test    时间: 2015-3-21 21:15

回复 17# freesoft00
  1. set "dir=%SYSTEMDRIVE%\Program Files\Internet Explorer\iexplore.exe"
  2. set "name=Internet Explorer"
  3. set "m=%USERPROFILE%\Desktop\%name%.url"
  4. (echo [InternetShortcut]
  5. echo URL="%dir%"
  6. echo IconIndex=0
  7. echo IconFile="%SYSTEMDRIVE%\Program Files\Internet Explorer\iexplore.exe")>"%m%"
复制代码

作者: freesoft00    时间: 2015-3-21 21:28

本帖最后由 freesoft00 于 2015-3-21 21:30 编辑

回复 19# pcl_test
不是不行,因为有些系统双击打开的是64位的cmd就没有什么问题,有些双击打开的就是32位的cmd,这个时候就不行了。所以需要手动打开32位的cmd环境,然后再运行批处理才能测试出来。
我在论坛搜索了64这个关键才,好像vbs有这个问题。
这里:
http://www.bathome.net/viewthread.php?tid=34003&highlight=64
我不知道是不是和我的是一个问题,我看不懂那个帖子的代码,所以不知道如何修改我的创建快捷方式的批处理测试。
作者: pcl_test    时间: 2015-3-21 22:07

回复 21# freesoft00
你的错误提示是什么?
作者: freesoft00    时间: 2015-3-21 22:16

回复 22# pcl_test


    现在不在故障机器旁白,如果可以明天下午或者晚上截图上来。
作者: freesoft00    时间: 2015-3-21 22:36

回复 20# pcl_test
这个和上面那个应该没有区别吧?
作者: ygqiang    时间: 2015-3-22 12:09

回复  freesoft00
pcl_test 发表于 2015-3-19 13:22



    请教下。。。xp系统环境下,如何将开始菜单里面的“关机”、“注销”图标,换成下面这2种图标外观?谢谢
  1. -----------------------------------------------
  2. ;创建exe文件的lnk快捷方式
  3. set SrcFile=logoff
  4. set LnkFile=%userprofile%\「开始」菜单\注销
  5. call :CreateShort "%SrcFile%" "%LnkFile%"
  6. goto :eof
  7. ::Arguments              目标程序参数
  8. ::Description            快捷方式备注
  9. ::FullName               返回快捷方式完整路径
  10. ::Hotkey                 快捷方式快捷键
  11. ::IconLocation           快捷方式图标,不设则使用默认图标
  12. ::TargetPath             目标
  13. ::WindowStyle            窗口启动状态
  14. ::WorkingDirectory       起始位置
  15. :CreateShort
  16. mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(""%~2.lnk""):b.TargetPath=""%~1"":b.WorkingDirectory=""%~dp1"":b.Save:close")
复制代码
  1. -----------------------------------------------
  2. ;创建exe文件的lnk快捷方式
  3. set SrcFile=%SystemRoot%\system32\shutdn.bat
  4. set LnkFile=%userprofile%\「开始」菜单\关机
  5. call :CreateShort "%SrcFile%" "%LnkFile%"
  6. goto :eof
  7. ::Arguments              目标程序参数
  8. ::Description            快捷方式备注
  9. ::FullName               返回快捷方式完整路径
  10. ::Hotkey                 快捷方式快捷键
  11. ::IconLocation           快捷方式图标,不设则使用默认图标
  12. ::TargetPath             目标
  13. ::WindowStyle            窗口启动状态
  14. ::WorkingDirectory       起始位置
  15. :CreateShort
  16. mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(""%~2.lnk""):b.TargetPath=""%~1"":b.WorkingDirectory=""%~dp1"":b.Save:close")
复制代码

作者: apang    时间: 2015-3-22 15:09

回复 25# ygqiang


    关机和注销图标在 %windir%\system32\shell32.dll里
随便找一个快捷方式,点击更改图标,定位到%windir%\system32\shell32.dll,从上往下数,看关机图标是第几个
比如win7关机图标是第27个,那么在代码中加一句:
b.IconLocation=""%windir%\system32\shell32.dll, 27""
作者: ygqiang    时间: 2015-3-22 22:52

回复  ygqiang


    关机和注销图标在 %windir%\system32\shell32.dll里
随便找一个快捷方式,点击更 ...
apang 发表于 2015-3-22 15:09



   
解决了。感谢。xp系统下,代码如下:
  1. -----------------------------------------------
  2. del /f /q "%userprofile%\「开始」菜单\关机.*"
  3. del /f /q "%userprofile%\「开始」菜单\画图.*"
  4. del /f /q "%userprofile%\「开始」菜单\计算器.*"
  5. del /f /q "%userprofile%\「开始」菜单\记事本.*"
  6. del /f /q "%userprofile%\「开始」菜单\命令提示符.*"
  7. del /f /q "%userprofile%\「开始」菜单\注销.*"
  8. del /f /q "%userprofile%\「开始」菜单\我的电脑.lnk"
  9. ping 127.0.0.1 -n 3 >nul 2>nul
  10. -----------------------------------------------
  11. ;创建exe文件的lnk快捷方式
  12. set SrcFile=%SystemRoot%\system32\shutdn.bat
  13. set LnkFile=%userprofile%\「开始」菜单\关机
  14. call :CreateShort "%SrcFile%" "%LnkFile%" "%IconPath%"
  15. goto :eof
  16. ::Arguments              目标程序参数
  17. ::Description            快捷方式备注
  18. ::FullName               返回快捷方式完整路径
  19. ::Hotkey                 快捷方式快捷键
  20. ::IconLocation           快捷方式图标,不设则使用默认图标
  21. ::TargetPath             目标
  22. ::WindowStyle            窗口启动状态
  23. ::WorkingDirectory       起始位置
  24. :CreateShort
  25. mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(""%~2.lnk""):b.TargetPath=""%~1"":b.WorkingDirectory=""%~dp1"":b.IconLocation=""%windir%\system32\shell32.dll,27"":b.Save:close")
  26. -----------------------------------------------
  27. ;创建exe文件的lnk快捷方式
  28. set SrcFile=%SystemRoot%\system32\mspaint.exe
  29. set LnkFile=%userprofile%\「开始」菜单\画图
  30. call :CreateShort "%SrcFile%" "%LnkFile%"
  31. goto :eof
  32. ::Arguments              目标程序参数
  33. ::Description            快捷方式备注
  34. ::FullName               返回快捷方式完整路径
  35. ::Hotkey                 快捷方式快捷键
  36. ::IconLocation           快捷方式图标,不设则使用默认图标
  37. ::TargetPath             目标
  38. ::WindowStyle            窗口启动状态
  39. ::WorkingDirectory       起始位置
  40. :CreateShort
  41. mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(""%~2.lnk""):b.TargetPath=""%~1"":b.WorkingDirectory=""%~dp1"":b.Save:close")
  42. -----------------------------------------------
  43. ;创建exe文件的lnk快捷方式
  44. set SrcFile=%SystemRoot%\system32\calc.exe
  45. set LnkFile=%userprofile%\「开始」菜单\计算器
  46. call :CreateShort "%SrcFile%" "%LnkFile%"
  47. goto :eof
  48. ::Arguments              目标程序参数
  49. ::Description            快捷方式备注
  50. ::FullName               返回快捷方式完整路径
  51. ::Hotkey                 快捷方式快捷键
  52. ::IconLocation           快捷方式图标,不设则使用默认图标
  53. ::TargetPath             目标
  54. ::WindowStyle            窗口启动状态
  55. ::WorkingDirectory       起始位置
  56. :CreateShort
  57. mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(""%~2.lnk""):b.TargetPath=""%~1"":b.WorkingDirectory=""%~dp1"":b.Save:close")
  58. -----------------------------------------------
  59. ;创建exe文件的lnk快捷方式
  60. set SrcFile=%SystemRoot%\system32\notepad.exe
  61. set LnkFile=%userprofile%\「开始」菜单\记事本
  62. call :CreateShort "%SrcFile%" "%LnkFile%"
  63. goto :eof
  64. ::Arguments              目标程序参数
  65. ::Description            快捷方式备注
  66. ::FullName               返回快捷方式完整路径
  67. ::Hotkey                 快捷方式快捷键
  68. ::IconLocation           快捷方式图标,不设则使用默认图标
  69. ::TargetPath             目标
  70. ::WindowStyle            窗口启动状态
  71. ::WorkingDirectory       起始位置
  72. :CreateShort
  73. mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(""%~2.lnk""):b.TargetPath=""%~1"":b.WorkingDirectory=""%~dp1"":b.Save:close")
  74. -----------------------------------------------
  75. ;创建exe文件的lnk快捷方式
  76. set SrcFile=%SystemRoot%\system32\cmd.exe
  77. set LnkFile=%userprofile%\「开始」菜单\命令提示符
  78. call :CreateShort "%SrcFile%" "%LnkFile%"
  79. goto :eof
  80. ::Arguments              目标程序参数
  81. ::Description            快捷方式备注
  82. ::FullName               返回快捷方式完整路径
  83. ::Hotkey                 快捷方式快捷键
  84. ::IconLocation           快捷方式图标,不设则使用默认图标
  85. ::TargetPath             目标
  86. ::WindowStyle            窗口启动状态
  87. ::WorkingDirectory       起始位置
  88. :CreateShort
  89. mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(""%~2.lnk""):b.TargetPath=""%~1"":b.WorkingDirectory=""%~dp1"":b.Save:close")
  90. ping 127.0.0.1 -n 5 >nul 2>nul
  91. -----------------------------------------------
  92. ;创建exe文件的lnk快捷方式
  93. set SrcFile=logoff
  94. set LnkFile=%userprofile%\「开始」菜单\注销
  95. call :CreateShort "%SrcFile%" "%LnkFile%" "%IconPath%"
  96. goto :eof
  97. ::Arguments              目标程序参数
  98. ::Description            快捷方式备注
  99. ::FullName               返回快捷方式完整路径
  100. ::Hotkey                 快捷方式快捷键
  101. ::IconLocation           快捷方式图标,不设则使用默认图标
  102. ::TargetPath             目标
  103. ::WindowStyle            窗口启动状态
  104. ::WorkingDirectory       起始位置
  105. :CreateShort
  106. mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(""%~2.lnk""):b.TargetPath=""%~1"":b.WorkingDirectory=""%~dp1"":b.IconLocation=""%windir%\system32\shell32.dll,44"":b.Save:close")
  107. -----------------------------------------------
  108. ::创建exe文件的lnk快捷方式
  109. ::xp系统,在开始菜单下面,建立快捷方式
  110. set "SrcFile=%SystemRoot%\system32\shutdown.exe"
  111. set "Args=-l -t 2"
  112. set "LnkFile=注销.LNK"
  113. call :CreateShort "%SrcFile%" "%Args%" "%LnkFile%" "%IconPath%"
  114. pause & goto :eof
  115. ::Arguments              目标程序参数
  116. ::Description            快捷方式备注
  117. ::FullName               返回快捷方式完整路径
  118. ::Hotkey                 快捷方式快捷键
  119. ::IconLocation           快捷方式图标,不设则使用默认图标
  120. ::TargetPath             目标
  121. ::WindowStyle            窗口启动状态
  122. ::WorkingDirectory       起始位置
  123. :CreateShort
  124. mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""「开始」菜单"") & ""%userprofile%\「开始」菜单\%~3""):b.TargetPath=""%~1"":b.WorkingDirectory=""%~dp1"":b.Arguments=""%~2"":b.IconLocation=""%windir%\system32\shell32.dll,44"":b.Save:close")
  125. ping 127.0.0.1 -n 2 >nul 2>nul
  126. copy /y 我的电脑.lnk "%userprofile%\「开始」菜单\"
  127. exit
复制代码

作者: ygqiang    时间: 2015-3-22 22:53

win7 64系统下,代码如下:
  1. ——————————————————————————————————————————————————
  2. del /q 0000-win7.vbs
  3. ::创建exe文件的lnk快捷方式
  4. ::win7系统下,在开始菜单的附件accessories下面,建立快捷方式
  5. @echo off
  6. set "SrcFile=%SystemRoot%\system32\shutdown.exe"
  7. set "Args=-s -t 2"
  8. set "LnkFile=关机.LNK"
  9. call :CreateShort "%SrcFile%" "%Args%" "%LnkFile%" "%IconPath%"
  10. pause & goto :eof
  11. ::Arguments              目标程序参数
  12. ::Description            快捷方式备注
  13. ::FullName               返回快捷方式完整路径
  14. ::Hotkey                 快捷方式快捷键
  15. ::IconLocation           快捷方式图标,不设则使用默认图标
  16. ::TargetPath             目标
  17. ::WindowStyle            窗口启动状态
  18. ::WorkingDirectory       起始位置
  19. :CreateShort
  20. mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""startmenu"") & ""\\Programs\accessories\%~3""):b.TargetPath=""%~1"":b.WorkingDirectory=""%~dp1"":b.Arguments=""%~2"":b.IconLocation=""%windir%\system32\shell32.dll,27"":b.Save:close")
  21. ::创建exe文件的lnk快捷方式
  22. ::win7系统下,在开始菜单的附件accessories下面,建立快捷方式
  23. set SrcFile=logoff
  24. set LnkFile=C:\ProgramData\Microsoft\Windows\Start Menu\Programs\accessories\注销
  25. call :CreateShort "%SrcFile%" "%LnkFile%" "%IconPath%"
  26. goto :eof
  27. ::Arguments              目标程序参数
  28. ::Description            快捷方式备注
  29. ::FullName               返回快捷方式完整路径
  30. ::Hotkey                 快捷方式快捷键
  31. ::IconLocation           快捷方式图标,不设则使用默认图标
  32. ::TargetPath             目标
  33. ::WindowStyle            窗口启动状态
  34. ::WorkingDirectory       起始位置
  35. :CreateShort
  36. mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(""%~2.lnk""):b.TargetPath=""%~1"":b.WorkingDirectory=""C:\windows\system32\"":b.IconLocation=""%windir%\system32\shell32.dll,44"":b.Save:close")
  37. set "profils=C:\Program Files"
  38. if exist "C:\Program Files (x86)" set "profils=C:\Program Files (x86)"
  39. ::创建exe文件的lnk快捷方式
  40. ::win7系统下,在开始菜单的附件accessories下面,建立快捷方式
  41. set SrcFile=%profils%\Internet Explorer\iexplore.exe
  42. set LnkFile=%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\Internet Explorer
  43. call :CreateShort "%SrcFile%" "%LnkFile%"
  44. goto :eof
  45. ::Arguments              目标程序参数
  46. ::Description            快捷方式备注
  47. ::FullName               返回快捷方式完整路径
  48. ::Hotkey                 快捷方式快捷键
  49. ::IconLocation           快捷方式图标,不设则使用默认图标
  50. ::TargetPath             目标
  51. ::WindowStyle            窗口启动状态
  52. ::WorkingDirectory       起始位置
  53. :CreateShort
  54. mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(""%~2.lnk""):b.TargetPath=""%~1"":b.WorkingDirectory=""%~dp1"":b.Save:close")
  55. echo Sub startpin(lnkfile)>>0000-win7.vbs
  56. echo 'Const CSIDL_COMMON_PROGRAMS = ^&H17>>0000-win7.vbs
  57. echo Set objShell = CreateObject("Shell.Application")>>0000-win7.vbs
  58. echo 'Set objAllUsersProgramsFolder = objShell.NameSpace(CSIDL_COMMON_PROGRAMS)>>0000-win7.vbs
  59. echo 'strAllUsersProgramsPath = objAllUsersProgramsFolder.Self.Path>>0000-win7.vbs
  60. echo path=Left(lnkfile,InStrRev(lnkfile,"\"))>>0000-win7.vbs
  61. echo Set objFolder = objShell.Namespace(path)>>0000-win7.vbs
  62. echo name=Replace(lnkfile,path,"")>>0000-win7.vbs
  63. echo Set objFolderItem = objFolder.ParseName(name)>>0000-win7.vbs
  64. echo Set colVerbs = objFolderItem.Verbs>>0000-win7.vbs
  65. echo For Each objVerb in colVerbs>>0000-win7.vbs
  66. echo     If Left(objVerb.name,2) = "附到" Then objVerb.DoIt>>0000-win7.vbs
  67. echo Next>>0000-win7.vbs
  68. echo End Sub>>0000-win7.vbs
  69. echo startpin Wscript.Arguments(0)>>0000-win7.vbs
  70. ping 127.0.0.1 -n 3 >nul 2>nul
  71. ren "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\accessories\Paint.lnk" 画图.lnk
  72. ren "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\accessories\Calculator.lnk" 计算器.lnk
  73. ren "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\accessories\System Tools\Resource Monitor.lnk" 资源监视器.lnk
  74. ren "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\关机.lnk"
  75. ren "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\accessories\Snipping Tool.lnk" 截图.lnk
  76. ren "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\Notepad.lnk" 记事本.lnk
  77. ren "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\Command Prompt.lnk" 命令提示符.lnk
  78. ren "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\accessories\注销.lnk"
  79. 0000-win7.vbs "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\accessories\画图.lnk"
  80. 0000-win7.vbs "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\accessories\计算器.lnk"
  81. 0000-win7.vbs "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\System Tools\资源监视器.lnk"
  82. 0000-win7.vbs "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\关机.lnk"
  83. 0000-win7.vbs "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\截图.lnk"
  84. 0000-win7.vbs "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\记事本.lnk"
  85. 0000-win7.vbs "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\命令提示符.lnk"
  86. 0000-win7.vbs "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\accessories\注销.lnk"
  87. 0000-win7.vbs "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\Internet Explorer.lnk"
  88. ping 127.0.0.1 -n 5 >nul 2>nul
  89. del /q 0000-win7.vbs
复制代码

作者: freesoft00    时间: 2015-3-23 19:42

回复 19# pcl_test




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2