PowerShellを実行形式exe化したときにハマるポイント
PowerShellを実行形式exe化したときにハマるポイントがあったのでメモとして記事にしました。
exe化する記事はこちら
exe化した時の実行中ファイルが存在するディレクトリ
PowerShellのコードを「ファイル名.ps1」として保存して、
そのファイルを実行しているとき、コードの中でそのファイル自身が存在するディレクトリを知りたいことがあると思います。そのとき、普通なら$PSScriptRootを使えば分かります。
## 普通は$PSScriptRoot
Write-Host '★$PSScriptRoot'
$dir = $PSScriptRoot
Write-Host $dir
pause
しかし、これをexe化して実行すると$PSScriptRootの中身がカラで何も表示されません。
この場合pwdを使います。
## exe化した時はpwd
Write-Host '★pwd'
$dir = pwd
Write-Host $dir.path
pause
どうして動作が変わっちゃうのか分からんのですけど、これで解決しました。
#PowerShell #コードレット #プログラミング初心者 #プログラミング学習
#exe化 #PSScriptRoot