PowerShellスクリプトを実行するときに、Notepad ++のデフォルトのインストールパスC:\Program Files\
を、インストール先のドライブに変更するためのパラメーターがわかりません。サイレントインストールを実行しようとしていますが、手動で変更できません。
プログラムを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
本当にインストールが必要ですか?開発用サイトにスタンドアロンパッケージがあり、どこにでもコピーできます。 「クールな」コンテキストメニューアドオンについては、手動で追加できるほど簡単です。
以下は、これを実行するために必要な手順の簡単な説明です。
Powershellでスタンドアロンパッケージのコンテンツを目的のフォルダーにコピーします。
Powershellを使用して新しいGUIDを生成する
[guid] :: NewGUID()
GUIDを変数に書き留めます(後で参照できるようにするため))。
HKEY_CLASSES_ROOT\CLSID \の下に、残りのGUIDが追加されるのと同じ方法でGUIDエントリを追加します。
サブコンテナを作成しますInprocServer32およびSettings
InprocServer32の値を(Default)に設定し、NppShell_06.dllを直接指定するNotepad ++インストールパスに設定します(例:C:\ Program Files\Notepad ++\NppShell_06.dll)
ThreadingModel REG_SZエントリを追加し、その値をApartmentに設定します
Settingsサブコンテナで、値を適宜設定します。有効な値のリストについては、Notepad ++がインストールされているマシンを参照してください。最も「興味深い」ものは「パス」と「タイトル」です
前に生成したGUIDエントリをサブコンテナ "ANotepad ++"のHKEY_CLASSES_ROOT *\shellex\ContextMenuHandlers \の(Default) valueに追加します
これでうまくいくはずです。私は私のマシンで上記をテストしませんでしたが、これは「手動の」インストールの問題を解決するだろうと確信しています。補足として、上記の「回避策」を気にする必要がないように、いくつかのサイレントインストール構成スイッチを追加することは、開発者への提案(または、最善の方法として、自分で書く!)として価値があります。 。この設定で問題が発生した場合は、お知らせください。
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の良い回避策ですが、わかりました。レジストリに移動して、C:\へのデフォルトパスを含む.regファイルをエクスポートし、すべてE:に変更しました。次に、エクスポートしたすべての.regファイルをマスター.regファイルに入れ、それをスクリプトから呼び出しました。
スクリプト行は:
regedit.exe /S nMaster.reg
レジストリを考慮に入れて、あなたの助けに感謝し、正しい方向に私を押してください。