Batch file 如何使用批处理文件在桌面上创建带有图标的快捷方式?

Batch file 如何使用批处理文件在桌面上创建带有图标的快捷方式?,batch-file,vbscript,icons,shortcut,Batch File,Vbscript,Icons,Shortcut,我想使用批处理文件在桌面上创建带有图标的快捷方式,如下所示: set SCRIPT="%TEMP%\theiboosts1.vbs" echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT% echo sLinkFile = "%USERPROFILE%\Desktop\Internetovy Booster.lnk" >> %SCRIPT% echo Set oLink = oWS.CreateS

我想使用批处理文件在桌面上创建带有图标的快捷方式,如下所示:

set SCRIPT="%TEMP%\theiboosts1.vbs"

echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT%
echo sLinkFile = "%USERPROFILE%\Desktop\Internetovy Booster.lnk" >> %SCRIPT%
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT%
echo oLink.TargetPath = "c:\Booster\booster.bat" >> %SCRIPT%
echo oLink.Save >> %SCRIPT%

"%windir%\system32\timeout.exe" /t 5

start wscript.exe "%SCRIPT%"

"%windir%\system32\timeout.exe" /t 10
echo Const DESKTOP = &H10&>>"%TEMP%\testboost.vbs"
"%windir%\system32\timeout.exe" /t 5
echo Set objShell = CreateObject("Shell.Application") >>"%TEMP%\testboost.vbs"
"%windir%\system32\timeout.exe" /t 5
echo Set objFolder = objShell.NameSpace(DESKTOP) >>"%TEMP%\testboost.vbs"
"%windir%\system32\timeout.exe" /t 5
echo Set objFolderItem = objFolder.ParseName("Internetovy Booster.lnk") >>"%TEMP%\testboost.vbs"
"%windir%\system32\timeout.exe" /t 5
echo Set objShortcut = objFolderItem.GetLink >>"%TEMP%\testboost.vbs"
"%windir%\system32\timeout.exe" /t 5
echo objShortcut.SetIconLocation "C:\Windows\System32\SHELL32.dll",-16752 >>"%TEMP%\testboost.vbs"
"%windir%\system32\timeout.exe" /t 5
echo objShortcut.Save >>"%TEMP%\testboost.vbs"

"%windir%\system32\timeout.exe" /t 5

start wscript.exe "%TEMP%\testboost.vbs"

"%windir%\system32\timeout.exe" /t 5
但它写了一个错误:

但两者之间没有命令

"%windir%\system32\timeout.exe" /t 10

当我创建.vbs文件时,它工作正常

Const DESKTOP = &H10&

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(DESKTOP)

Set objFolderItem = objFolder.ParseName("Internetovy Booster.lnk")
Set objShortcut = objFolderItem.GetLink

objShortcut.SetIconLocation "C:\Windows\System32\SHELL32.dll",-16752
objShortcut.Save
有人能帮我吗?

符号(
&
)是批处理文件/Windows命令shell中的一个特殊字符。它表示当前命令已结束,新命令正在启动

echo Const DESKTOP = &H10&>>"%TEMP%\testboost.vbs"
脚本实际上将其解释为:

echo Const DESKTOP =
H10
>>"%TEMP%\testboost.vbs"
这是不正确的,因为您只想打印
&
字符。“语法不正确”错误实际上与试图将
H10
作为命令(不存在)执行的脚本有关

要在字符串中打印
&
字符,只需使用批转义字符-a克拉
^
对其进行转义即可

echo Const DESKTOP = ^&H10^&>>"%TEMP%\testboost.vbs"

谢谢杰森!我忘了我必须在特殊字符前写^D
echo Const DESKTOP = ^&H10^&>>"%TEMP%\testboost.vbs"