Setara dengan perintah `source` bash di Powershell?

15

Untuk menjalankan skrip bash baris demi baris (misalnya untuk melestarikan variabel lingkungan), lakukan yang berikut:

$ . myscript.sh

Atau:

$ source myscript.sh

Saya memiliki skrip PowerShell yang - antara lain - menetapkan nilai prompt melalui fungsi yang disebut prompt. Cukup menjalankan skrip ini (". \ Myscript.ps1") tidak mengubah prompt. Namun, menjalankan fungsi baris demi baris seperti yang dilakukan perintah .

Jadi yang saya butuhkan secara efektif adalah sesuatu seperti sourceperintah untuk PowerShell. Apa itu mungkin?

EDIT : Haruskah posting ini dipindahkan ke Stackoverflow?

Klarifikasi 1 : Karena saya menjalankan fungsi ini hanya berdasarkan kebutuhan (yaitu, tidak untuk setiap sesi PowerShell dan / atau selalu), saya tidak ingin menyimpan dalam profil startup PowerShell saya.

Sridhar Ratnakumar
sumber
Catatan: dua perintah Bash Anda berbeda. Anda mungkin tidak bermaksud memiliki titik di titik kedua atau Anda bermaksud keduanya memiliki "./" (direktori saat ini) di awal nama skrip.
Dennis Williamson
Memperbaikinya (dengan menghapus titik)
Sridhar Ratnakumar

Jawaban:

28

Anda bisa " dot sumber " di PowerShell juga. Anda hanya perlu memastikan bahwa Anda menentukan path lengkap. Jadi, jika skrip yang ingin Anda muat ada di direktori lokal yang akan Anda lakukan:

PS C:\>. .\myscript.ps1
zdan
sumber
INI adalah jawaban yang tepat :) dot sourcing di PowerShell bekerja sangat mirip seperti di Bash
Jaykul
Saya tidak tahu Anda bisa melakukan itu. bagus.
DaveParillo
Wah! Kenapa saya tidak mencobanya sebelumnya? :)
Sridhar Ratnakumar
1
Apakah ada cara lain yang bisa dilakukan dengan skrip cmd yang ada? Apakah eksekusi skrip cmd menghasilkan lingkungan powershell sedang dimodifikasi?
peabody
1
Bagaimana jika Anda perlu menjalankan .batfile dan memodifikasi lingkungan?
Chloe