我目前正在使用.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% /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\Opslag\Opslag.lnk
添加到“开始”菜单。
我之前看过的帖子如下: How to pin to start menu using PowerShell,但我无法使其发挥作用。
我目前正在家用笔记本电脑上测试它,该笔记本电脑使用丹麦语运行Windows 7。我需要这样做的机器运行Windows 7英语。因此我认为$verb
与我找到的脚本不同,但我没有在我的工作站上测试过。
此外,我的工作站的UAC非常有限, 因此我没有管理员权限。请不要评论用户不应该这样做,而只评论管理员/ IT,因为我知道我在做什么。
我希望有人可以帮助我将Opslag.lnk
固定到开始菜单,最好是两种语言(丹麦语和英语)。
答案 0 :(得分:0)
找到“开始菜单”文件夹的位置:
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
答案 1 :(得分:0)
在另一次搜索中,我偶然发现了一个非常有用的VBScript:http://blogs.technet.com/b/deploymentguys/archive/2009/04/08/pin-items-to-the-start-menu-or-windows-7-taskbar-via-script.aspx:
Const CSIDL_COMMON_PROGRAMS = &H17
Const CSIDL_PROGRAMS = &H2
Set objShell = CreateObject("Shell.Application")
Set objAllUsersProgramsFolder = objShell.NameSpace(CSIDL_COMMON_PROGRAMS)
strAllUsersProgramsPath = objAllUsersProgramsFolder.Self.Path
Set objFolder = objShell.Namespace(strAllUsersProgramsPath & "\Accessories")
Set objFolderItem = objFolder.ParseName("Calculator.lnk")
Set colVerbs = objFolderItem.Verbs
For Each objVerb in colVerbs
Wscript.Echo objVerb
Next
脚本列出了特定程序的verbs
,在本例中为计算器。遗憾的是,Opslag.lnk
中的动词“Pin to Start Menu”未列出,因此我认为这不能用动词来完成。希望其他人有其他想法。
答案 2 :(得分:0)
我使用.vbs在当前配置文件中执行此操作(并使用注册表,runonce在所有(新)userprofiles上启动.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