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.


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

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.