直接调用 lnk 文件就行了,非要拆出参数来处理的话,
以 ”chrome 浏览器的自定义快捷方式“ 为例,先手动将 chrome 的快捷方式修改为把数据目录和缓存目录重定向到 D 盘。
这时要调用 lnk 文件并读取它的参数,
参考如下:- @goto :main
-
- @rem Usage:
- rem "快捷方式的读取和运行.bat" "C:\your path\Google Chrome (重定向用户文件夹).lnk"
- rem "C:\your path\Google Chrome (重定向用户文件夹).lnk" 右键“属性” - 目标:
- rem "C:\Program Files\Google\Chrome\Application\chrome.exe" --enable-contextual-search --user-data-dir="D:\Program Files\Google\Chrome\User Data" --disk-cache-dir="D:\Program Files\Google\Chrome\cache"
-
-
- :main
- @echo off&setlocal EnableDelayedExpansion
- set "p=%~1"
- if /i not "%~x1"==".LNK" (echo exit) else (
- (echo Dim objShell, objFolder, objFolderItem, objShellLink, s
- echo Set objShell = CreateObject("Shell.Application"^) ''创建对象
- echo Set objFolder = objShell.NameSpace("%~dp1"^) ''LNK文件所在目录路径
- echo Set objFolderItem = objFolder.ParseName("%~nx1"^) ''LNK文件名
- echo Set objShellLink = objFolderItem.GetLink ''获取快捷方式对象
- echo Set wshShell=CreateObject("WScript.Shell"^)
- @REM 方法 8
- REM echo wshShell.Run """" ^& objShellLink.Path ^& """" ^& Chr(32^) ^& objShellLink.Arguments
- @REM 方法 7
- echo wshShell.Run """%~1"""
- Set wshShell = Nothing
- Set objShell = Nothing
- )>"%TEMP%\makelnk.vbs"
- "%TEMP%"\makelnk.vbs
- del /f /q "%TEMP%\makelnk.vbs"
- )
- goto :eof
复制代码
|