#navi(../)
* PowerShellコンソール起動時にスクリプトを実行する方法 $profile [#cfa1cc5c]
LinuxなどUNIX系のシェルでターミナル起動時に実行されるスクリプトを記述しておく .profile や .bash_profile などと同等の事をPowerShellで実現する
方法を以下に記します。

#contents
#htmlinsertpcsp(win-top.html,win-sp.html)

* 関連記事 [#h3e9341b]
-[[PowerShellスクリプトを起動できるようにする>PowerShell/PowerShellスクリプトを起動できるようにする]]
-[[コマンドプロンプト起動時にバッチファイルを読み込み設定を反映する方法>コマンドプロンプト/コマンドプロンプト起動時にバッチファイルの設定を反映する方法]]

* 環境変数 $profile [#tb85172e]
PowerShellのコンソールを起動し、''$profile'' と入力しEnterキーを押してみてください。~
出力されたパスがPowerShell起動時に読み込まれるスクリプトとなります。~
以下に出力例を記します。
 PS C:\Users\Sakura> $profile
 C:\Users\Sakura\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

* $profileを作成して試してみる [#n092ded9]
''$profile''により、配置するディレクトリおよびファイル名が分かったので作成してみます。~
以下、上記の$profileの出力をもとにした手順です。~
みなさんの環境にあった値で読み替えてください。
+ ディレクトリの作成
 mkdir C:\Users\Sakura\Documents\WindowsPowerShell\
#br
+ ファイルの作成
 notepad $profile
#br
+ Microsoft.PowerShell_profile.ps1 に以下の記述を書き、保存しました。
 # Office2013 Path
 $Env:Path += ";C:\Program Files\Microsoft Office 15\root\office15"
 # Google Chrome Path
 $Env:Path += ";C:\Program Files\Google\Chrome\Application"
 # Function
 Function touch($file) {
   If (Test-Path $file) {
     (Get-Item $file).LastWriteTime = Get-Date
   } Else {
     Out-File -encoding Default $file
   }
 }
 Function uptime() {
   [DateTime]::Now -  [Management.ManagementDateTimeConverter]::ToDateTime((Get-WmiObject Win32_OperatingSystem).LastBootUpTime) |
   Select-Object Days, Hours, Seconds, Milliseconds| Format-Table -AutoSize
 }
+一度、PowerShellを終了し再度起動します。~
&color(red){''エラーになった場合は…''};&br;
スクリプトが実行できる設定になっていないと思われます。~
PowerShellのデフォルトではPowerShellスクリプトを記述したファイルを読み込み実行が無効となっています。~
以下のリンクの記事で、PowerShellのスクリプトファイル実行を許可してください。
--[[PowerShellスクリプトを起動できるようにする>PowerShell/PowerShellスクリプトを起動できるようにする]]
#br
+ 実際にPATHが通っているかを確認したり、定義したFunctionが動くか確認した時のスクリーンショットです
#ref(01.png)
#br


以上、PowerShell起動時にスクリプトを読み込み実行する方法でした。

#htmlinsertpcsp(win-btm.html,win-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS