- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PowerShellからPowerShellを呼び出す方法)
PowerShellからPowerShellを呼び出す方法
このQ&Aのポイント
- PowerShellからPowerShellを呼び出す方法は、バッチファイルと同じように簡単に実現することができます。具体的な手順としては、PowerShellスクリプトファイルで呼び出したいPowerShellスクリプトを実行するだけです。
- バッチファイルでの例でいうと、「bbb.bat」が「aaa.bat」を呼び出して結果をファイルに保存する場合、PowerShellでの同様の動作は、「bbb.ps1」が「aaa.ps1」を呼び出して結果をファイルに保存することです。
- 具体的な書き方としては、PowerShellスクリプト内で「Start-Process」コマンドレットを使用し、呼び出したいPowerShellスクリプトを実行するように指定します。また、ファイルに保存する場合は、「Out-File」コマンドレットを使用します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
回答番号:No.1 お礼へのアドバイスです。 >「キックして結果を待は待たずに次の処理をする」 >などのバリエーションは可能でしょうか? 使いこなせていませんがPowerShell 2.0ではバックグラウンドジョブが実現されました。下記の@ITの記事などが参考になると思います。 http://www.atmarkit.co.jp/fwin2k/winsv2008r2/03powershell/03powershell_03.html Windows7で Start-Job, Get-Job, Receive-Jobが働くことを確認しました。
その他の回答 (1)
- SHIMAPEE
- ベストアンサー率75% (154/203)
回答No.1
PowerShellではコマンドプロンプトと異なり自動的にはカレントフォルダが検索されません。ですから「bbb.ps1」からカレントフォルダの「aaa.ps1」を呼び出したい場合、カレントフォルダを示す .\ を付ける必要があります。 .\aaa.ps1 > aaa.log 私の持っている参考書では、環境変数Pathにカレントフォルダを示す .\ を追加することを推奨しています。
お礼
有難うございます。 パスを付けないと実行しないのはlinuxのようなノリですね。 でも、それだけだと上手く呼び出せない事があり、試しにpowershellと書いてやると動きました。 ■ bbb.ps1 ■ powershell ./bbb.ps1 ■ bbb.ps1 ■ でも、これって普通の書き方なのでしょうか? また、 「呼び出して結果を待つ」まではこれで行けていますが、 「待った後、戻り値を受け取る」 あるいは 「待った後、ステータスを拾う」 さらには、 「キックして結果を待は待たずに次の処理をする」 などのバリエーションは可能でしょうか?