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

[文件操作] [已解决]创建快捷方式的批处理总是提示缺少括号的原因是什么?

本帖最后由 lzf_voip 于 2015-5-18 12:07 编辑

不知道是不是转义字符用的不当的原因,改来改去不是这里缺少 ')’,就是那里缺少 ')’,麻烦哪位大神帮我测试一下问题在哪,多谢!

批处理如下:
  1. @echo off & setlocal enabledelayedexpansion
  2. set "arg=-extoff"
  3. set "NewWorkingDirectory=D:\Program Files\"
  4. for /f "tokens=1* delims=:"  %%a in ('more +9 %0') do (
  5. if exist "%%a:%%b" mshta VBScript:Execute^("Set a=CreateObject^(""WScript.Shell""^):Set b=a.CreateShortcut^(""%%a:%%b""^):b.Arguments=^(""%arg%""^):b.WorkingDirectory=^(""%NewWorkingDirectory%""^):b.Save:close"^)
  6. )
  7. exit
  8. ::"D:\Program Files\abc.lnk"
复制代码
1

评分人数

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

除最后一个转义字符外,其它转义字符通通删掉
1

评分人数

TOP

回复 2# apang


  谢谢,我刚才研究出来的结果证明了你的建议完全正确。

TOP

不知道是不是转义字符用的不当的原因,改来改去不是这里缺少 ')’,就是那里缺少 ')’,麻烦哪位大神帮我测 ...
lzf_voip 发表于 2015-5-18 09:40
  1. del /q "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\accessories\注销.lnk"
  2. rem 创建exe文件的lnk快捷方式
  3. ::指定路径和名称
  4. set "LnkFile=C:\ProgramData\Microsoft\Windows\Start Menu\Programs\accessories\注销.lnk"
  5. set "LnkFile1=%userprofile%\「开始」菜单\注销.lnk"
  6. ::指定主程序
  7. set "TargetPath=%SystemRoot%\system32\logoff.exe"
  8. ::指定起始位置
  9. set "WorkingDirectory=%SystemRoot%\system32"
  10. ::指定快捷键
  11. set "Hotkey=Ctrl+Shift+L"
  12. ::指定图标
  13. set "IconLocation=%windir%\system32\shell32.dll,44"
  14. del "%LnkFile%" /f /q >nul 2>nul
  15. call :CreateShort "%LnkFile%" "%TargetPath%" "%WorkingDirectory%" "%HotKey%" "%IconLocation%"
  16. call :CreateShort "%LnkFile1%" "%TargetPath%" "%WorkingDirectory%" "%HotKey%" "%IconLocation%"
  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(""%~1""):b.TargetPath=""%~2"":b.WorkingDirectory=""%~3"":b.HotKey=""%~4"":b.IconLocation=""%~5"":b.Save:close")
复制代码

TOP

返回列表