示例使用场景:例如便携版的软件,需要往桌面发快捷方式
如便携的浏览器,给桌面发送快捷方式,同时设置快捷方式的启动参数。
下面以谷歌浏览器为例: 浏览器的App的下级目录为如下内容
知道了所需文件的位置,就可以进行如下命令的编写
@echo off
set SCRIPT="CreateShortcut.vbs"
:: 打开一个WScript创建快捷方式
echo Set oWS = WScript.CreateObject("WScript.Shell") > CreateShortcut.vbs
:: 设置快捷方式路径
:: echo sLinkFile = "%HOMEDRIVE%%HOMEPATH%\Desktop\Chrome.lnk" >> CreateShortcut.vbs
echo sLinkFile = "%USERPROFILE%\Desktop\Chrome.lnk" >> CreateShortcut.vbs
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> CreateShortcut.vbs
:: 设置快捷方式的原文件的位置
echo oLink.TargetPath = "%~dp0\App\chrome.exe" >> CreateShortcut.vbs
:: 设置快捷方式的启动参数
echo oLink.Arguments = "--user-data-dir=""%~dp0User Data"" --disk-cache-dir=""%~dp0cache"" --profile-directory=""Profile 1"" --disable-background-networking" >> CreateShortcut.vbs
echo oLink.WorkingDirectory = "%~dp0App" >> CreateShortcut.vbs
:: 备注
echo oLink.Description = "Chrome" >> CreateShortcut.vbs
:: 快捷键
echo oLink.HotKey = "CTRL+ALT+G" >> CreateShortcut.vbs
:: 保存快捷方式
echo oLink.Save >> CreateShortcut.vbs
:: 运行快捷方式
:: cscript CreateShortcut.vbs
:: 运行快捷方式
cscript /nologo CreateShortcut.vbs
:: 删除这个创建快捷方式的脚本
del CreateShortcut.vbs
其中上图各个内容对应字段如下:
Arguments 快捷方式的程序参数
Description 快捷方式的备注
FullName 返回快捷方式完整路径
Hotkey 快捷方式的快捷键
IconLocation 快捷方式的图标,不设则使用默认图标
TargetPath 目标位置,即:设置快捷方式的原文件的位置
WindowStyle 窗口启动状态
WorkingDirectory 起始位置
其他的一些bat命令:
- 获取当前文件目录
-
%~dp0
- 获取当前用户桌面文件目录
-
%USERPROFILE%\Desktop
- 获取公共用户桌面目录
-
%PUBLIC%\Desktop
其他命令整合
@echo off
:: 获取当前文件目录
set local_path=%~dp0
echo local_path=%local_path%
:: 获取当前用户Desktop(桌面)文件目录1
set local_Desktop=%USERPROFILE%\Desktop
echo local_Desktop=%local_Desktop%
:: 获取当前用户Desktop(桌面)文件目录2
set local_Desktop2=%HOMEDRIVE%%HOMEPATH%\Desktop
echo local_Desktop2=%local_Desktop2%
:: 获取公用Desktop(桌面)文件目录
set Pubilc_Desktop=%PUBLIC%\Desktop
echo Pubilc_Desktop=%Pubilc_Desktop%
:: 获取当前用户开始菜单文件目录
set local_Start_Menu=%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu
echo local_Start_Menu=%local_Start_Menu%
:: 获取公共用户开始菜单文件目录
set Pubilc_Start_Menu=%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs
echo Pubilc_Start_Menu=%Pubilc_Start_Menu%
:: 按压结束关闭窗口
pause