[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 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")
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

目测  -s -t 2 应该算 参数

TOP

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



    对啊。

就是因为带了 -s -t 2  这参数。虽然也可以创建快捷方式,但却不能运行。
如果不带这个参数,是可以创建快捷方式并运行的。

TOP

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

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

QQ 20147578

TOP

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这个变量,放在""里面呢?

TOP

回复 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")
复制代码
1

评分人数

TOP

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



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

其实我是想在下面位置建立快捷方式:
%userprofile%\「开始」菜单\关机.lnk

TOP

回复 7# ygqiang


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

另外,startmenu 对应的是 开始菜单

TOP

回复  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")
复制代码

TOP

回复 9# ygqiang


    晕死,你在代码中找找哪里有DeskTop,把它改成 StartMenu

TOP

回复  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")
复制代码

TOP

已经解决。
  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")
复制代码

TOP

回复 6# apang




    ::IconLocation
我想修改快捷方式的图标文件指向,这个添加到哪里?谢谢!

TOP

本帖最后由 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")
复制代码
1

评分人数

TOP

回复 14# pcl_test


    好的,再次谢谢!

TOP

返回列表