2013-04-23 38 views
6

Tôi chỉ muốn để nhân rộng các hành vi tương tự mà tôi làm trên hệ thống Linuxcurl http: //url/script.ps1 | powershell có thể?

c:\> \{CURL_EQUIVALENT_ON_WINDOWS} - http://url/script | powershell 

Là có thể?

Về cơ bản tôi muốn thực thi luồng tôi tải xuống từ máy chủ.

IE: theo các bước:

1) Tìm hiểu cách thực thi luồng trong quyền hạn. Thực thi luồng (mà tôi đã có trên hệ thống tệp)

c:\> type script.ps1 | powershell -command - 

nhưng điều này không hiệu quả.

Có tùy chọn -File để thực thi "Tệp" và về cơ bản tôi muốn thực thi luồng nếu có thể.

2) Tìm hiểu cách thực thi luồng mà tôi tải xuống từ máy chủ và đưa nó vào một powerhell.

+0

Hm, hãy thử nó ra? :-) – akluth

+0

Bạn đang mong đợi điều gì '| powershell' để làm gì? –

+0

chỉ để chạy luồng – p4tux

Trả lời

3

Bạn có thể chỉ định tham số lệnh của powershell bằng dấu gạch ngang để đọc lệnh từ đầu vào tiêu chuẩn. Dưới đây là một ví dụ:

"Write-Host This is a test" | powershell -command - 

Ví dụ của việc sử dụng nội dung của một tập tin kịch bản:

Get-Content .\test.ps1 | powershell -command - 

Từ PowerShell menu trợ giúp:

powershell /? 

-Command
Thực thi các quy định lệnh (và bất kỳ tham số nào) như thể chúng được nhập vào Windows P Dấu nhắc lệnh owerShell, và sau đó thoát, trừ khi NoExit được chỉ định. Giá trị của Command có thể là "-", một chuỗi. hoặc một khối tập lệnh .

If the value of Command is "-", the command text is read from standard 
input. 
+0

Mmm Tôi đã thử với một tập lệnh: gõ script.ps1 | powershell -command - và nó không hoạt động :-(đó là tùy chọn -File nhưng điều đó sẽ vô giá trị, về cơ bản tôi muốn thực thi luồng – p4tux

+1

Tôi đã cập nhật với một ví dụ về việc sử dụng nội dung của tệp kịch bản lệnh. của tập tin, không chỉ xác định tập tin, nó sẽ dẫn nội dung của tập tin như một chuỗi, cũng giống như tải về một tập tin với curl. – dugas

7

Nhờ dugas Tôi học cách để thực hiện suối với PowerShell, và với liên kết này http://blog.commandlinekungfu.com/2009/11/episode-70-tangled-web.html Tôi hiểu làm thế nào để có được nội dung như một dòng suối từ http với PowerShell.

Vì vậy, curl cuối cùng | ống PowerShell trông như thế này:

PS C:\>(New-Object System.Net.WebClient).DownloadString("http://url/script.ps1") | powershell -command - 

Cảm ơn rất nhiều tới tất cả mọi người góp phần cho câu hỏi này :-)

+3

Bạn cũng có thể sử dụng 'Invoke-Expression':' (New-Object System.Net .WebClient) .DownloadString ("http: //url/script.ps1") | iex'. Đây là cách [PsGet] (http://psget.net/) làm điều đó. –

Các vấn đề liên quan