batch-file - 使用 BAT 脚本更改快捷方式的目标
问题描述
实际上,我想复制快捷方式文件并需要更改目标。
对于复制,我有如下的脚本
xcopy /Y "C:\Users\Administrator\Desktop\SFR.lnk" "C:\Users\Administrator\Desktop\SFR-NEW.lnk"*
目标是
当前: “C:\Users\Administrator\AppData\Local\SFR\sfr.exe”。
在这里我想在复制后更改目标,我尝试了一些东西,但它不起作用。
xcopy /Y "C:\Users\Administrator\Desktop\SFR.lnk" "C:\Users\799964\Desktop\SFR-NEW.lnk"*
ChangeLNKs /p=C:\Users\Administrator\AppData\Local\SFR\sfr.exe -admin
在复制快捷方式后,我只需要 bat 脚本来更改目标。
解决方案
从您提供的代码中可以看出,您根本不需要编辑目标。您只是附加一个参数,因此仅添加一个参数会更明智。
您已经被告知其他语言可以满足您的需求,但为了保持话题,我提供了两个完整的批处理文件来使用它们。
一个使用powershell:
@FindStr /V "^@" "%~f0"|PowerShell -&GoTo :EOF
$SrcePath = 'C:\Users\Administrator\Desktop\SFR.lnk'
$DestPath = 'C:\Users\799964\Desktop\SFR-NEW.lnk'
Copy-Item $SrcePath $DestPath
$Shortcut = (New-Object -COM WScript.Shell).CreateShortcut($DestPath)
$Shortcut.Arguments = '-admin'
$Shortcut.Save()
还有一个使用vbscript:
::'@CScript //NoLogo //E:VBScript "%~f0"&Exit /B
SrcePath = "C:\Users\Administrator\Desktop\SFR.lnk"
DestPath = "C:\Users\799964\Desktop\SFR-NEW.lnk"
CreateObject("Scripting.FileSystemObject").CopyFile SrcePath,DestPath
Set Shortcut = WScript.CreateObject("WScript.Shell").CreateShortcut(DestPath)
Shortcut.Arguments = "-admin"
Shortcut.Save
Set Shortcut = Nothing
在此示例中,有一个不可见的第三个字符SUB( 0x1A),它应该可以很好地复制,但无论如何都值得一提。
择其一,就速度而言,我可能会选择后者。
推荐阅读
- database-design - 微服务架构中模型之间的松散耦合
- java - 自定义键盘上的android自动完成下拉覆盖
- android - (未知 url)的 Http 失败响应:android 上的 0 未知错误
- python - 在终端窗口中停止 logcat 的脚本
- c# - C# 控制台快捷方式 - 如何禁用?
- vba - 帮助提高循环效率
- ms-mpi - MS-MPI v9.0.1 是哪个版本的 MPI
- nginx - Kubernetes nginx 控制器,没有到默认后端的流量:400s 应该是 404s
- html - 设置一个
的背景图像,跨浏览器问题? - html - 如何停止下拉提交表单附加网址?