C:\Program Files\
当我运行 PowerShell 脚本时,我无法找出将 Notepad++ 的默认安装路径更改为我希望安装到的驱动器的参数。我正在尝试进行静默安装,无法手动更改它。
有人知道我可以添加哪些参数来将程序安装到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
答案1
您真的需要安装吗?您在开发网站上有独立包,您可以将其复制到任何您想要的地方。至于“酷”的上下文菜单插件,它们很容易手动添加。
以下是完成此操作所需采取的步骤的简要说明:
让你的 Powershell 将独立包的内容复制到所需的文件夹。
使用 Powershell 生成新的 GUID
[guid]::NewGUID()
将 GUID 写下来给变量(以便以后引用)。
在 HKEY_CLASSES_ROOT\CLSID\ 下添加 GUID 条目,方式与添加其余 GUID 的方式相同。
创建子容器进程服务器32和设置
在里面进程服务器32设置(默认)值为所需的 Notepad++ 安装路径,直接指向 NppShell_06.dll(例如 C:\Program Files\Notepad++\NppShell_06.dll)
添加线程模型REG_SZ 条目并将其值设置为公寓
在里面设置子容器,请相应地设置值 - 有关有效值的列表,请参考安装了 Notepad++ 的机器。最“有趣”的是“路径”和“标题”
将之前生成的 GUID 条目添加到 HKEY_CLASSES_ROOT*\shellex\ContextMenuHandlers\ 下的子容器“ANotepad++”中(默认) 价值
这应该可以。虽然我没有在我的计算机上测试上述内容,但我非常有信心这将解决“手动”安装问题。顺便说一句,可以向开发人员提出一个建议(或者,最好的方法是自己编写!)添加一些静默安装配置开关,这样我们就不必为上述“解决方法”而烦恼了。如果您在设置时遇到一些问题,请告诉我。
答案2
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 选项不支持引号
答案3
没错,@Koliat 的解决方法不错,但我找到了。我进入注册表,将包含默认路径的 .reg 文件导出到 C:\,然后将它们全部更改为 E:。然后,我将导出的所有 .reg 文件放入主 .reg 文件中,然后通过我的脚本调用该文件。
脚本内容为:
regedit.exe /S nMaster.reg
感谢您的帮助,并在考虑注册表方面推动我朝着正确的方向发展。