%windir%\\system32\\WindowsPowerShell\\v1.0\\PowerShell_ISE.exe "main.ps1","GUI\\Window.xaml","Modules\\ModuleName\\ModuleName.psm1”
%windir%
%SystemRoot%
でもよい"main.ps1”,"GUI\\Window.xaml","Modules\\ModuleName\\ModuleName.psm1”
.\\main.ps1
としなくても良い%FILEPATH%
通常のウィンドウ
または最大化
%windir%\\system32\\WindowsPowerShell\\v1.0\\powershell.exe -WindowStyle Hidden -ExecutionPolicy Bypass -File ".\\main.ps1”
%windir%
%SystemRoot%
でもよい-WindowStyle Hidden
-ExecutionPolicy Bypass
".\\main.ps1”
main.ps1
では実行されない%FILEPATH%
通常のウィンドウ
または最小化
※GUIアプリを実行する場合は -WindowStyle Hidden
を使用しても起動直後にコンソールウィンドウが一瞬表示されるため最小化
がおすすめ。
%windir%\\system32\\WindowsPowerShell\\v1.0\\powershell.exe -NoExit -ExecutionPolicy Bypass -File ".\\Function.ps1”
%windir%
%SystemRoot%
でもよい-NoExit
-ExecutionPolicy Bypass
".\\main.ps1”
main.ps1
では実行されない%FILEPATH%
通常のウィンドウ
または最大化
ショートカットファイルに埋め込む形で文字コードを指定してPowerShellスクリプトを起動する方法は、ショートカット自体の設定に直接エンコーディングを指定する機能がないため、PowerShellスクリプト内でエンコーディングを設定するのが一般的です。しかし、ショートカットに渡すコマンドライン引数を使ってエンコーディングを指定したい場合、以下の方法を検討できます。
PowerShellスクリプト内でエンコーディング指定
まず、起動される App.ps1
の中にエンコーディングを設定するコードを含める方法が最も直接的です。例えば、UTF-8エンコーディングを設定するには以下のようにスクリプトに書きます。
$OutputEncoding = [System.Text.Encoding]::UTF8
そして、ショートカットのターゲットにそのスクリプトを指定します。
ショートカットのターゲット例:
%windir%\\\\system32\\\\WindowsPowerShell\\\\v1.0\\\\powershell.exe -File "C:\\\\path\\\\to\\\\App.ps1"
ショートカットにコマンド引数を渡して文字コードを指定する方法 ショートカットで直接文字コードを指定する方法としては、PowerShellコマンドライン引数を利用します。例えば、PowerShellで起動時にエンコーディングを設定するために、ショートカットのターゲットに以下のような引数を渡すことができます。
例:UTF-8エンコーディングを指定して起動する場合
%windir%\\\\system32\\\\WindowsPowerShell\\\\v1.0\\\\powershell.exe -Command "$OutputEncoding = [System.Text.Encoding]::UTF8; .\\\\App.ps1"
ここで -Command
オプションを使って、PowerShellの実行時にエンコーディング設定を含むコマンドを指定し、その後にスクリプトを実行します。
ExecutionPolicy
や NoProfile
を利用
エンコーディング設定を確実に適用するため、他の設定に影響を受けないように ExecutionPolicy Bypass
や NoProfile
を追加することも考慮できます。これにより、既存のプロファイル設定の影響を避けることができます。
例:
%windir%\\\\system32\\\\WindowsPowerShell\\\\v1.0\\\\powershell.exe -ExecutionPolicy Bypass -NoProfile -Command "$OutputEncoding = [System.Text.Encoding]::UTF8; .\\\\App.ps1"
これにより、ショートカット経由でPowerShellスクリプトを実行する際に指定したエンコーディング(例:UTF-8)で起動できるようになります。
もし異なるエンコーディングで動作させるファイルが複数ある場合は、エンコーディングを引数として渡し、スクリプト内でそれを使って設定する方法もあります。
例:ショートカットでShift-JISを指定
%windir%\\\\system32\\\\WindowsPowerShell\\\\v1.0\\\\powershell.exe -Command "$OutputEncoding = [System.Text.Encoding]::GetEncoding('shift-jis'); .\\\\App.ps1"