使用批处理文件创建桌面快捷方式(复杂)

Create a Desktop Shortcut using a batch file (Complex)

我仅限于为此功能使用 .bat 文件。

我希望能够为 运行 MS Access 数据库创建一个桌面快捷方式(带有我自己的图标),但我希望 "My Icon" 显示在 Windows任务栏而不是默认的 MS Access 图标。

为此,快捷方式的目标必须如下:

"C:\Program Files (x86)\Microsoft Office\Office15\MSACCESS.EXE" "C:\Users\lmffwp\Downloads\MyDatabase.accdb"

我需要 .bat 文件才能将此行写入快捷方式的 "Target"。

我疯狂地用谷歌搜索,但找不到解决这个问题的办法。 这不起作用:

echo oLink.TargetPath = "C:\Program Files (x86)\Microsoft Office\Office15\MSACCESS.EXE" "%USERPROFILE%\Downloads\MyDatabase.accdb" >> %SCRIPT%

这是我的代码:

set SCRIPT="%TEMP%\LinkMaker-%RANDOM%-%RANDOM%.vbs"
echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT%
echo sLinkFile = "%PUBLIC%\Desktop\MyDatabase.lnk" >> %SCRIPT%
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT%
echo oLink.TargetPath = "C:\Program Files (x86)\Microsoft Office\Office15\MSACCESS.EXE" "%USERPROFILE%\Downloads\MyDatabase.accdb" >> %SCRIPT%
echo oLink.IconLocation = "J:\Everyone\Operator Assistant\Images\MyDatabaseLOGO.ico" >> %SCRIPT%
echo oLink.WorkingDirectory = "%USERPROFILE%\Downloads\"
echo oLink.Save >> %SCRIPT%
cscript /nologo %SCRIPT%
del %SCRIPT%

必须有一种方法能够将以下用引号引起来的两部分添加到快捷方式的目标中:

echo oLink.TargetPath = "C:\Program Files (x86)\Microsoft Office\Office15\MSACCESS.EXE" "%USERPROFILE%\Downloads\MyDatabase.accdb" >> %SCRIPT%

我相信这是我实际问题的细分。

旁注: 如果我手动更改快捷方式的目标行,快捷方式将完美运行。我需要 .bat 文件来为我执行此操作,因为它是每个人用来将数据库前端安装到其本地 PC 的安装文件。

你想做的,我想是给你的 TargetPath 添加参数。如果没有参数,正如我的 'since deleted' 评论中所述,脚本将不会为您提供任务栏中 MyDatabase.accdb 的图标,只会为 MSAccess.exe 提供您所在的程序 运行.

下面是对您的代码的修改,以供进一步阅读:

@Set "SCRIPT=%TEMP%\LinkMaker-%RANDOM%-%RANDOM%.vbs"
@(  echo Set oWS = WScript.CreateObject("WScript.Shell"^)
    echo sLinkFile = "%PUBLIC%\Desktop\MyDatabase.lnk"
    echo Set oLink = oWS.CreateShortcut(sLinkFile^)
    echo oLink.TargetPath = "C:\Program Files (x86^)\Microsoft Office\Office15\MSACCESS.EXE"
    echo oLink.Arguments = """%USERPROFILE%\Downloads\MyDatabase.accdb"""
    echo oLink.IconLocation = "J:\Everyone\Operator Assistant\Images\MyDatabaseLOGO.ico"
    echo oLink.WorkingDirectory = "%USERPROFILE%\Downloads"
    echo oLink.Save
)>"%SCRIPT%"
@"%__AppDir__%cscript.exe" //NoLogo "%SCRIPT%"
@Del "%SCRIPT%"

旁注:您似乎错过了将 >> %SCRIPT% 添加到您的版本中的工作目录行。

COMPO...感谢您的帮助。虽然您没有得到最终答案,但您提供的帮助远远不止这些。

这是绝对有效的代码!!!!

@echo off

@Set "SCRIPT=%TEMP%\LinkMaker-%RANDOM%-%RANDOM%.vbs"
@(  echo Set oWS = WScript.CreateObject("WScript.Shell"^)
    echo sLinkFile = "%PUBLIC%\Desktop\MyDatabase.lnk"
    echo Set oLink = oWS.CreateShortcut(sLinkFile^)
    echo oLink.TargetPath = "C:\Program Files (x86)\Microsoft Office\Office15\MSACCESS.EXE"
    echo oLink.Arguments = """%USERPROFILE%\Downloads\MyDatabase.accdb"""
    echo oLink.IconLocation = "J:\Everyone\MyDatabase\Images\MyDatabaseLOGO.ico"
    echo oLink.WorkingDirectory = "%USERPROFILE%\Downloads"
    echo oLink.Save
)>"%SCRIPT%"
@"%__AppDir__%cscript.exe" //NoLogo "%SCRIPT%"
@Del "%SCRIPT%"

请注意,oLink.Argument 行的每一侧都有 3 个引号。这成功了,并允许平滑 运行 的 .bat 文件,它不仅创建了桌面快捷方式,而且还在 Windows 任务栏(屏幕底部)上为我的数据库使用了我的自定义图标.

再次...非常感谢 COMPO 的努力!谢谢你为我坚持!