Batch file 将快捷方式(.lnk)固定到“开始”菜单
我目前正在使用.cmd文件制作安装脚本。 这是我的密码:Batch file 将快捷方式(.lnk)固定到“开始”菜单,batch-file,cmd,Batch File,Cmd,我目前正在使用.cmd文件制作安装脚本。 这是我的密码: IF EXIST "%USERPROFILE%\Desktop\Opslag\Opslag.hta" ( START "" "%USERPROFILE%\Desktop\Opslag\Opslag.lnk" /secondary /minimized MSG "%USERNAME%" The program is already installed. EXIT ) ELSE ( XCOPY %SOURCE% %DESTINATION
IF EXIST "%USERPROFILE%\Desktop\Opslag\Opslag.hta" (
START "" "%USERPROFILE%\Desktop\Opslag\Opslag.lnk" /secondary /minimized
MSG "%USERNAME%" The program is already installed.
EXIT
) ELSE (
XCOPY %SOURCE% %DESTINATION% /D /E /C /R /I /K /Y
START "" "%USERPROFILE%\Desktop\Opslag\Opslag.lnk" /secondary /minimized
MSG "%USERNAME%" Setup is complete!
EXIT
)
%SOURCE%
和%DESTINATION%
在脚本的前面设置
复制文件夹后,我希望将文件%USERPROFILE%\Desktop\op渣\op渣.lnk
添加到“开始”菜单中。
我以前看到过这样的帖子:
,但我不能让它工作
我目前正在我的家用笔记本电脑上测试它,它运行的是丹麦语的Windows7。我需要执行此操作的机器使用英语运行Windows 7。因此,我认为$verb
与我找到的脚本不同,但我没有在我的工作站上进行测试
此外,我的工作站的UAC非常有限,
因此,我没有管理员权限。请不要评论用户不应该这样做,而应该是管理员/IT,因为我知道我在做什么
我希望有人能帮助我将
op渣.lnk
锁定到“开始”菜单,最好使用两种语言(丹麦语和英语) 查找“开始”菜单文件夹的位置:
For /f "tokens=3*" %%G in ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Start Menu" ^|Find "REG_"') do Call Set _startmenu=%%H
echo %_startmenu%
pause
查找“开始”菜单文件夹的位置:
For /f "tokens=3*" %%G in ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Start Menu" ^|Find "REG_"') do Call Set _startmenu=%%H
echo %_startmenu%
pause
在另一次搜索中,我偶然发现了一个非常有用的VBScript::
脚本列出了特定程序的所有
动词,在本例中为计算器。不幸的是,myop渣.lnk
中的动词“Pin to Start Menu”没有列出,因此我认为动词不能实现这一点。希望其他人有其他想法 在另一次搜索中,我偶然发现了一个非常有用的VBScript::
脚本列出了特定程序的所有动词,在本例中为计算器。不幸的是,myop渣.lnk
中的动词“Pin to Start Menu”没有列出,因此我认为动词不能实现这一点。希望其他人有其他想法 我在当前配置文件中使用了.vbs来执行此操作(并在所有(新)用户配置文件上使用注册表runonce来启动.vbs)。我们公司同时使用荷兰语和英语设备,因此您将看到它将尝试两种语言。问题是它在.lnk上不起作用,但您始终可以创建引用所需目标的exe
Dim strFolder, strExecutable
Set objShell = CreateObject("Shell.Application")
strFolder = "C:\Tools"
strExecutable = "Tool.exe"
Set objFolder = objShell.Namespace(strFolder)
Set objFolderItem = objFolder.ParseName(strExecutable)
Set colVerbs = objFolderItem.Verbs
'Loop through the verbs and if PIN is found then 'DoIt' (execute)
blnOptionFound = False
For Each objVerb In colVerbs
If Replace(objVerb.name, "&", "") = "Aan het menu Start vastmaken" Then
objVerb.DoIt
blnOptionFound = True
End If
Next
For Each objVerb In colVerbs
If Replace(objVerb.name, "&", "") = "Pin to Start Menu" Then
objVerb.DoIt
blnOptionFound = True
End If
Next
我在当前配置文件中使用了.vbs来实现这一点(并在所有(新的)用户配置文件上使用注册表runonce来启动.vbs)。我们公司同时使用荷兰语和英语设备,因此您将看到它将尝试两种语言。问题是它在.lnk上不起作用,但您始终可以创建引用所需目标的exe
Dim strFolder, strExecutable
Set objShell = CreateObject("Shell.Application")
strFolder = "C:\Tools"
strExecutable = "Tool.exe"
Set objFolder = objShell.Namespace(strFolder)
Set objFolderItem = objFolder.ParseName(strExecutable)
Set colVerbs = objFolderItem.Verbs
'Loop through the verbs and if PIN is found then 'DoIt' (execute)
blnOptionFound = False
For Each objVerb In colVerbs
If Replace(objVerb.name, "&", "") = "Aan het menu Start vastmaken" Then
objVerb.DoIt
blnOptionFound = True
End If
Next
For Each objVerb In colVerbs
If Replace(objVerb.name, "&", "") = "Pin to Start Menu" Then
objVerb.DoIt
blnOptionFound = True
End If
Next
看看这个==>看看这个==>我不能简单地将op渣.lnk
文件放到开始菜单文件夹中,让它出现在开始菜单中。我可以通过将op渣.lnk
文件放到这个文件夹中,使它出现在开始菜单下的“所有程序”中:C:\Users\USERNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
我不能简单地将op渣.lnk
文件放到开始菜单文件夹中,使它出现在开始菜单中。我可以通过将op渣.lnk
文件拖放到此文件夹中,使其出现在“开始”菜单下的“所有程序”中:C:\Users\USERNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs