把主程序变成 子程序 调用, 参数用你要的文件路径就行了:- @echo off
- (set fName="d:\SBRS\Support\SBRS.exe")
- rem 如果要用手工输入任意文件路径, 建立快捷方式, 请把下面的一行前面的 rem 去掉, 让代码生效
- rem set /p fName=请输入文件全路径(含空格请用双引号括起)(或将文件拖入此窗口):
- call :DeskLink %fName%
- exit
-
- :DeskLink
- (set att=%~a1)
- echo wscript.echo CreateObject("WScript.Shell").RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\desktop")>%HomeDrive%\t~.vbs
- for /f "delims=" %%a in ('cscript //nologo %HomeDrive%\t~.vbs') do set "mydesk=%%a"
- (set fnLnk=%~n1.lnk)&(set fnFull=%~f1)
- if exist "%mydesk%\%fnLnk%" msg %username% 快捷方式文件 %mydesk%\%fnLnk% 已经存在. 请先删除或重命名此文件再重试.
- (set fnFull=%fnFull:\=\\%)
- (set iconPath=%iconPath:\=\\%)
- (set vbsfn=%HomeDrive%\scuttemp.vbs)
- echo Set WshShell = Wscript.CreateObject("Wscript.Shell")>%vbsfn%
- echo ' 创建一个快捷方式对象,其在桌面上设置相同的名字>>%vbsfn%
- echo strDesktop = WshShell.SpecialFolders("Desktop")>>%vbsfn%
- echo Set oShellLink = WshShell.CreateShortcut(strDesktop ^& "\\%fnLnk%")>>%vbsfn%
- echo ' 设置快捷方式的执行路径>>%vbsfn%
- echo oShellLink.TargetPath = "%fnFull%">>%vbsfn%
- echo oShellLink.WindowStyle = 1 ' 运行方式>>%vbsfn%
- echo oShellLink.Hotkey = "" ' 设置快捷方式的快捷键>>%vbsfn%
- if /i "%att:~0,1%" equ "d" (
- call :setDirIcon
- echo oShellLink.TargetPath = "%SystemRoot%\explorer.exe">>%vbsfn%
- echo oShellLink.Arguments = "%fnFull:\\=\%\">>%vbsfn%
- )
- echo oShellLink.Description = "%~f1" ' 设置快捷方式的描述>>%vbsfn%
- if /i "%att:~0,1%" neq "d" echo oShellLink.WorkingDirectory = "%~dp1" ' 起始位置>>%vbsfn%
- echo oShellLink.Save>>%vbsfn%
- cscript //nologo %vbsfn%
- exit /b
-
- :setDirIcon
- echo oShellLink.IconLocation = "%SystemRoot%\system32\SHELL32.dll, 3" ' 设置文件夹快捷方式的图标路径>>%vbsfn%
- exit /b
复制代码
|