2012-04-25 36 views
6

Tôi đang cố gắng di chuyển một số hoạt động vỏ thông thường từ PowerShell sang Cygwin, chủ yếu là một bài tập giáo dục, nhưng cũng vì tôi thực sự bắt đầu yêu một số công cụ hương vị của Linux. Một điều tôi vẫn đang cố gắng tìm ra là cách liệt kê/thao tác các dịch vụ windows. Powershell đã có một số công cụ rất tiện dụng cho việc này, chẳng hạn như:các dịch vụ windows giám sát với cygwin

stop-service [pattern] 
start-service [pattern] 
gsv (or get-service) [pattern] 

tôi làm việc với rất nhiều dịch vụ tùy chỉnh thời gian gần đây và rất thích không cần phải chuyển sang PowerShell để làm điều này trong công việc thường xuyên của tôi. Có ai làm việc này không? Một số nỗ lực để google này đã được stymied bởi rất nhiều thứ về cách đối phó với Cygwin chạy như một dịch vụ.

Bất kỳ sự giúp đỡ/lời khuyên đánh giá rất cao ...

Trả lời

6

Làm thế nào về cách gọi lệnh PowerShell từ bên trong Cygwin?

cmd /c '%SystemRoot%\\system32\\WindowsPowerShell\\v1.0\\powershell.exe' -Command "gsv" 

EDIT: Và một giải pháp tổng quát hơn sẽ tạo ra một kịch bản powershell.sh chứa:

#!/bin/bash 
set -e 
set -u 
cmd /c '%SystemRoot%\\system32\\WindowsPowerShell\\v1.0\\powershell.exe' -Command "[email protected]" 

Sau đó bạn có thể chạy: ./powershell.sh gsv hoặc bất cứ lệnh bạn cần.

+0

Đẹp nhất. Cảm ơn! Tôi đã thêm rất nhiều loại công cụ này vào tệp .bashrc. Tôi đoán lợi thế của tập tin .sh chỉ để giúp giữ cho nội dung được sắp xếp? – brettman

+0

Để giữ cho nó được tổ chức, và cũng làm cho nó dễ dàng hơn để chia sẻ (trong trường hợp của tôi nó trong kho lưu trữ nguồn của chúng tôi) – sinelaw

0

Cách gọi powerhell từ bên trong Cygwin mà không cần gọi CMD.exe?

Sử dụng tập lệnh bash powerhell - dưới dạng trình bao bọc cho powershell.exe hoặc dưới dạng đoạn mã ngang bằng trong tập lệnh .ps1. Xem https://bitbucket.org/jbianchi/powershell

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