标题: [其他] 【求助】bat能不能修改:快捷方式-属性-目标?谢谢 [打印本页]
作者: yyz219 时间: 2023-12-16 15:40 标题: 【求助】bat能不能修改:快捷方式-属性-目标?谢谢
本帖最后由 yyz219 于 2023-12-18 08:17 编辑
bat能不能修改:快捷方式-属性-目标?谢谢
作者: xm4854 时间: 2023-12-16 19:01
lnk快捷方式是一种二进制文件,bat无法直接编辑
可以研究一下Python下的LnkParse3、pylnk
这是微软的关于LNK文件的文档
[MS-SHLLINK]: Shell Link (.LNK) Binary File Format
作者: buyiyang 时间: 2023-12-16 19:50
js- shortcutPath="D:\\0.lnk";
- TargetPath="D:\\00.exe";
-
- function withObject(obj,callback){callback(obj);}
- withObject(new ActiveXObject("WScript.Shell").CreateShortcut(shortcutPath),function(shortcut){
- shortcut.TargetPath=TargetPath;
- shortcut.Save();
- });
复制代码
作者: yyz219 时间: 2023-12-16 20:16
回复 2# xm4854
谢谢
作者: yyz219 时间: 2023-12-16 20:16
回复 3# buyiyang
谢谢
作者: aloha20200628 时间: 2023-12-16 20:57
本帖最后由 aloha20200628 于 2023-12-16 21:14 编辑
给一个cmd+jscript混编版本,更便于使用。代码存为批处理脚本,如 test.cmd- @set @v=1 /*
- @echo off
- set/p "sc=拖入快捷方式:"
- set/p "newP=拖入新目标路径所指向的文件:"
- cscript /e:jscript "%~f0" %sc% %newP%
- exit/b
- */
- v=WSH.arguments;
- ws=new ActiveXObject("WScript.shell");
- lnk=ws.createshortcut(v(0));
- lnk.targetpath=v(1); lnk.save();
- WSH.quit();
复制代码
作者: ShowCode 时间: 2023-12-16 21:33
回复 1# yyz219
V1.bat- # & cls & @cd /d "%~dp0" & powershell -c "Get-Content '%~0' | Out-String | Invoke-Expression " & exit /b
- $Shell = New-Object -ComObject WScript.Shell
- $Link = $Shell.CreateShortcut("C:\Users\Administrator\Desktop\00.exe.lnk")
- $Link.TargetPath = "D:\00.bat"
- $Link.Save()
复制代码
作者: Kinglion 时间: 2023-12-16 22:17
回复 1# yyz219
如果只是想修改桌面快捷方式对应的文件,为何不换个思路,重新创建新的快捷方式呢? 这个新的快捷方式指向您重新定义的程序或文档。
示例命令行:
mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""AllUsersStartup"") & ""\域脚本.lnk""):b.TargetPath=""c:\xk\Domain.exe"":b.WorkingDirectory=""c:\xk"":b.Save:close")
其中:
SpecialFolders 属性包括以下常见的文件夹路径:
- AllUsersDesktop:所有用户的桌面文件夹。
- AllUsersStartMenu:所有用户的开始菜单文件夹。
- AllUsersPrograms:所有用户的程序文件夹。
- AllUsersStartup:所有用户的启动文件夹。
- Desktop:当前用户的桌面文件夹。
- Favorites:当前用户的收藏夹文件夹。
- Fonts:系统字体文件夹。
- MyDocuments:当前用户的文档文件夹。
- Programs: 当前用户的程序文件夹。
- Recent:当前用户最近使用的文件夹。
- SendTo:发送到菜单的文件夹路径。
除了常见的文件夹路径,Windows 系统可能还包含其他自定义的文件夹路径。使用 objShell.SpecialFolders("") 可以返回所有可用的文件夹路径。
作者: yyz219 时间: 2023-12-17 18:26
回复 8# Kinglion
谢谢
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |