Windows 在用户使用自定义桌面位置的终端服务器中设置桌面路径。为了解决这个问题,我必须从注册表中读取桌面位置设置objShell=CreateObject(“WScript.Shell”)stregdesktoppath=objShell.Regrad(“HKEY\

Windows 在用户使用自定义桌面位置的终端服务器中设置桌面路径。为了解决这个问题,我必须从注册表中读取桌面位置设置objShell=CreateObject(“WScript.Shell”)stregdesktoppath=objShell.Regrad(“HKEY\,windows,batch-file,windows-8,cmd,shortcut,Windows,Batch File,Windows 8,Cmd,Shortcut,在用户使用自定义桌面位置的终端服务器中设置桌面路径。为了解决这个问题,我必须从注册表中读取桌面位置设置objShell=CreateObject(“WScript.Shell”)stregdesktoppath=objShell.Regrad(“HKEY\U CURRENT\U USER\Software\Microsoft\Windows\CurrentVersion\Explorer\USER Shell Folders\Desktop”)desktopath=objShell.Expand


在用户使用自定义桌面位置的终端服务器中设置桌面路径。为了解决这个问题,我必须从注册表中读取桌面位置<代码>设置objShell=CreateObject(“WScript.Shell”)stregdesktoppath=objShell.Regrad(“HKEY\U CURRENT\U USER\Software\Microsoft\Windows\CurrentVersion\Explorer\USER Shell Folders\Desktop”)desktopath=objShell.ExpandEnvironmentString(stregdesktopath)设置oWS=WScript.CreateObject(“WScript.Shell”)sLinkFile=desktopath&“\MyApp.lnk”我完全被搞糊涂了,无法想象为什么不能从命令行轻松创建快捷方式。太好了,它工作得很好。我认为它比mklink方法好。我使用shortcutJs.bat为.pyw文件创建快捷方式,该快捷方式与手动创建的快捷方式完全相同。但是,当您双击由mklink创建的链接时,它无法自动找到pythonw.exe以执行.pyw文件。我在linkarguments中添加双引号时遇到问题,如何在args中添加双引号?@MDuh-我必须更新脚本才能支持此操作。可能是在周末。虽然我先将其转换为等效的cygwin shell脚本,但在使用
IconFile
时,则必须使用
IconIndex
,即使图标文件是一个*.ico文件(索引应为0,如示例所示)。至少在Win 8.1N下,最后一行应该是“echo IconIndex=^0>%SHRT\u LOCA%”。如果不这样做,该行将在控制台中结束,而不是在文件中,因为Cmd.EXE将“0>>”视为将echo重定向到StdOut。句柄0是StdIn,StdOut是句柄1,但不管怎样,“^”都会逃避重定向。
xcopy "C:\Users\Gabriel\Desktop\test.bat" "C:\Users\Gabriel\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
call shortcutJS.bat -linkfile "%~n0.lnk" -target  "%~f0" -linkarguments "some arguments"
@echo off
mode con cols=87 lines=5 & color 9B
Title Shortcut Creator for your batch and applications files by Hackoo 2015
Set MyFile=%~f0
Set ShorcutName=HackooTest
(
echo Call Shortcut("%MyFile%","%ShorcutName%"^)
echo ^'**********************************************************************************************^)
echo Sub Shortcut(ApplicationPath,Nom^)
echo    Dim objShell,DesktopPath,objShortCut,MyTab
echo    Set objShell = CreateObject("WScript.Shell"^)
echo    MyTab = Split(ApplicationPath,"\"^)
echo    If Nom = "" Then
echo    Nom = MyTab(UBound(MyTab^)^)
echo    End if
echo    DesktopPath = objShell.SpecialFolders("Desktop"^)
echo    Set objShortCut = objShell.CreateShortcut(DesktopPath ^& "\" ^& Nom ^& ".lnk"^)
echo    objShortCut.TargetPath = Dblquote(ApplicationPath^)
echo    ObjShortCut.IconLocation = "Winver.exe,0"
echo    objShortCut.Save
echo End Sub
echo ^'**********************************************************************************************
echo ^'Fonction pour ajouter les doubles quotes dans une variable
echo Function DblQuote(Str^)
echo    DblQuote = Chr(34^) ^& Str ^& Chr(34^)
echo End Function
echo ^'**********************************************************************************************
) > Shortcutme.vbs
Start /Wait Shortcutme.vbs
Del Shortcutme.vbs
::***************************************Main Batch*******************************************
cls
echo Done and your main batch goes here !
echo i am a test 
Pause > Nul
::********************************************************************************************
@echo off
echo Set oWS = WScript.CreateObject("WScript.Shell") > CreateShortcut.vbs
echo sLinkFile = "GIVETHEPATHOFLINK.lnk" >> CreateShortcut.vbs
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> CreateShortcut.vbs
echo oLink.TargetPath = "GIVETHEPATHOFTARGETFILEYOUWANTTHESHORTCUT" >> CreateShortcut.vbs
echo oLink.Save >> CreateShortcut.vbs
cscript CreateShortcut.vbs
del CreateShortcut.vbs
@echo off
cd c:\MyApp
echo Set oWS = WScript.CreateObject("WScript.Shell") > CreateShortcut.vbs
echo sLinkFile = "%userprofile%\Desktop\MyApp.lnk" >> CreateShortcut.vbs
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> CreateShortcut.vbs
echo oLink.TargetPath = "C:\MyApp\MyApp.bat" >> CreateShortcut.vbs
echo oLink.WorkingDirectory = "C:\MyApp" >> CreateShortcut.vbs
echo oLink.Description = "My Application" >> CreateShortcut.vbs
echo oLink.IconLocation = "C:\MyApp\MyApp48.bmp" >> CreateShortcut.vbs
echo oLink.Save >> CreateShortcut.vbs
cscript CreateShortcut.vbs
del CreateShortcut.vbs
set fs  = CreateObject("Scripting.FileSystemObject")
set ws  = WScript.CreateObject("WScript.Shell")
set arg = Wscript.Arguments

linkFile = arg(0)

set link = ws.CreateShortcut(linkFile)
    link.TargetPath = fs.BuildPath(ws.CurrentDirectory, arg(1))
    link.Save
C:\dir>link.vbs ..\shortcut.txt.lnk target.txt
set SHRT_LOCA=%userprofile%\Desktop\new_shortcut2.url
set SHRT_DEST=C:\Windows\write.exe
echo [InternetShortcut]> %SHRT_LOCA%
echo URL=file:///%SHRT_DEST%>> %SHRT_LOCA%
echo IconFile=%SHRT_DEST%>> %SHRT_LOCA%
echo IconIndex=^0>> %SHRT_LOCA%
Set oWS = WScript.CreateObject("WScript.Shell")
shortcutLocation = Wscript.Arguments(0)

'error handle shortcut creation
On Error Resume Next
Set oLink = oWS.CreateShortcut(shortcutLocation)
If Err Then WScript.Quit Err.Number

'error handle setting shortcut target
On Error Resume Next
oLink.TargetPath = Wscript.Arguments(1)
If Err Then WScript.Quit Err.Number

'error handle setting start in property
On Error Resume Next
oLink.WorkingDirectory = Wscript.Arguments(2)
If Err Then WScript.Quit Err.Number

'error handle saving shortcut
On Error Resume Next
oLink.Save
If Err Then WScript.Quit Err.Number
cscript /b script.vbs shortcutFuturePath targetPath startInProperty
powershell "$s=(New-Object -COM WScript.Shell).CreateShortcut('%userprofile%\Start Menu\Programs\Startup\CWarp_DoH.lnk');$s.TargetPath='E:\Program\CloudflareWARP\warp-cli.exe';$s.Arguments='connect';$s.IconLocation='E:\Program\CloudflareWARP\Cloudflare WARP.exe';$s.WorkingDirectory='E:\Program\CloudflareWARP';$s.WindowStyle=7;$s.Save()"