我不能找出参数来更改Notepad ++的默认安装pathC:\Program Files\的当我运行我的PowerShell脚本我要它安装到的驱动器。 我正在尝试进行无提示安装,无法手动更改。
有谁知道我可以添加什么参数来安装程序到E:驱动器?
下面是我的代码和我在PowerShell中尝试的内容。 我一直在使用-ArgumentList参数来弄清楚是否可以将它指向E:驱动器,但目前还没有运气。 我也在Windows Server 2012上运行这个。
function install-Notepadpp() { $install="*PATH*\npp.6.6.2.Installer.exe" Start-Process -FilePath $install -ArgumentList '/InstallDirectoryPath:"E:\"','/S' -Wait -Verb RunAs Write-Host "Notepad++ has been installed." -ForegroundColor Green } ##### This is Windows calling the function to install the script install-Notepadpp
你真的需要安装吗? 你在dev网站上有独立的软件包,你可以把它复制到任何你想要的地方。 至于“酷”的上下文菜单插件,他们很简单,手动添加。
以下是您需要采取的步骤的简要说明:
让Powershell将独立软件包的内容复制到所需的文件夹中。
使用Powershell生成一个新的GUID
[GUID] :: NewGUID()
写下GUID到variables(所以你可以在以后参考)。
在HKEY_CLASSES_ROOT \ CLSID \下添加GUID条目的方式与其他GUID的添加方式相同。
创build一个子容器InprocServer32和设置
在InprocServer32中,将(默认)值设置为所需的Notepad ++安装path,直接指向NppShell_06.dll(例如,C:\ Program Files \ Notepad ++ \ NppShell_06.dll)
添加ThreadingModel REG_SZ条目并将其值设置为Apartment
在“ 设置”子容器中,相应地设置值 – 有效值列表请参考安装了Notepad ++的计算机。 最“有趣”的是“path”和“标题”
将您以前生成的GUID条目添加到HKEY_CLASSES_ROOT * \ shellex \ ContextMenuHandlers \中的子容器“ANotepad ++”下(默认)值
这应该做到这一点。 尽pipe我没有在我的机器上testing上述内容,但我相当确信这将解决“手动”安装问题。 作为一个旁注,对于开发人员(或者,作为一个最好的方式,自己写一个!)来说,这可能是一个值得推荐的方式来添加一些静默安assembly置开关,这样我们就不必担心上述“变通办法” 。 如果你遇到一些问题,请告诉我。
Notepad ++安装程序使用NSIS安装程序系统。 您可以利用其默认开关来完成。
http://nsis.sourceforge.net/Which_command_line_parameters_can_be_used_to_configure_installers
例如:npp.6.6.8.Installer.exe / S / D = d:\ software \ npp
注意:/ D选项不支持引号
诚然,一个很好的解决方法@Koliat,但我想通了。 我进入registry并将包含默认path的.reg文件导出到C:\并将它们全部更改为E :. 然后我把所有这些.reg文件导出到主.reg文件,然后通过我的脚本调用。
脚本行是:
regedit.exe /S nMaster.reg
感谢您的帮助,并将注册机构考虑在内,让我走向正确的方向。