Powershellのbashの「source」コマンドと同等ですか?


15

(たとえば、環境変数を保持するために)行ごとにbashスクリプトを実行するには、次のようにします。

$ . myscript.sh

または:

$ source myscript.sh

PowerShellスクリプトがあります。これは、とりわけ、呼び出される関数を介してプロンプトの値を設定しますprompt。このスクリプト( "。\ myscript.ps1")を実行するだけでは、プロンプトは変更されません。ただし、コマンドのように関数を1行ずつ実行します。

したがってsource、PowerShell のコマンドのようなものが効果的に必要です。出来ますか?

編集:この投稿をStackoverflowに移動する必要がありますか?

明確化1:この関数は必要に応じてのみ実行するため(つまり、すべてのPowerShellセッションおよび/または常に実行するわけではありません)、PowerShellスタートアッププロファイルに保存したくありません。


注:2つのBashコマンドは異なります。おそらく、2番目のドットにドットを含めることを意味しなかったか、スクリプト名の先頭に「./」(現在のディレクトリ)を含めることを意味していました。
追って通知があるまで一時停止します。

修正(ドットを削除)
スリダールラトナクマール2009年

回答:


29

PowerShellでも「ドットソース」を使用できます。絶対パスを必ず指定する必要があります。したがって、ロードするスクリプトがローカルディレクトリにある場合は、次のようにします。

PS C:\>. .\myscript.ps1

これが正しい答えです:) PowerShellのドットソーシングはかなりちょうどバッシュのように動作します
Jaykul

それができるとは思いもしませんでした。いいね
DaveParillo

うわあ!なぜ私は前にそれを試しなかったのですか?:)
スリダールラトナクマー2009年

1
とにかくこれは既存のcmdスクリプトで行うことができますか?cmdスクリプトの実行により、powershell環境が変更されますか?
ピーボディ

1
.batファイルを実行して環境を変更する必要がある場合はどうなりますか?
クロエ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.