使用BAT脚本更改快捷方式的目标

时间:2019-11-14 19:04:21

标签: batch-file

实际上,我想复制快捷方式文件并需要更改目标。

对于复印件,我有以下纸条

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

复制快捷方式后,我只需要蝙蝠脚本即可更改目标。

1 个答案:

答案 0 :(得分:1)

从提供的代码中可以看出,您根本不需要编辑目标。您仅需添加一个参数,因此添加一个参数会更明智。

您已经被告知其他语言可以满足您的需求,但是为了保持话题性,我提供了两个完整的批处理文件来利用它们。

使用的人:

@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()

还有一个使用

::'@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),应该可以很好地复制,但值得一提。

选择一个或另一个,就速度而言,我可能会选择后者。