Tương đương với lệnh `source` của bash trong Powershell?


15

Để chạy một tập lệnh bash từng dòng (để bảo toàn các biến môi trường), người ta thực hiện như sau:

$ . myscript.sh

Hoặc là:

$ source myscript.sh

Tôi có một tập lệnh PowerShell - trong số những thứ khác - đặt giá trị của dấu nhắc thông qua chức năng được gọi prompt. Chỉ cần chạy tập lệnh này (". \ Myscript.ps1") không thay đổi lời nhắc. Tuy nhiên, chạy chức năng từng dòng một như một lệnh .

Vì vậy, những gì tôi thực sự cần là một cái gì đó giống như sourcelệnh cho PowerShell. Có thể không?

EDIT : Bài đăng này có nên được chuyển sang Stackoverflow không?

Làm rõ 1 : Vì tôi chỉ chạy chức năng này trên cơ sở cần thiết (nghĩa là không phải cho mọi phiên quyền hạn và / hoặc luôn luôn), tôi không muốn lưu trữ trong hồ sơ khởi động quyền hạn của mình.


Lưu ý: hai lệnh Bash của bạn là khác nhau. Bạn có thể không có dấu chấm trong cái thứ hai hoặc bạn có nghĩa là cả hai đều có "./" (thư mục hiện tại) ở đầu tên tập lệnh.
Tạm dừng cho đến khi có thông báo mới.

Đã sửa nó (bằng cách xóa dấu chấm)
Sridhar Ratnakumar

Câu trả lời:


29

Bạn cũng có thể " chấm nguồn " trong PowerShell. Bạn chỉ cần đảm bảo rằng bạn chỉ định đường dẫn đầy đủ. Vì vậy, nếu tập lệnh bạn muốn tải nằm trong thư mục cục bộ, bạn sẽ làm:

PS C:\>. .\myscript.ps1

Đây là câu trả lời đúng :) nguồn cung cấp chấm trong PowerShell hoạt động khá giống như trong Bash
Jaykul

Tôi không có ý tưởng bạn có thể làm điều đó. đẹp.
DaveParillo

Ái chà! Tại sao tôi không thử nó trước đây? :)
Sridhar Ratnakumar

1
Có dù sao điều này có thể được thực hiện với một tập lệnh cmd hiện có? Có một kết quả thực thi tập lệnh cmd trong môi trường powershell đang được sửa đổi?
peabody 04/11/2015

1
Điều gì nếu bạn cần chạy một .battập tin và sửa đổi môi trường?
Chloe
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.