2008-11-28 42 views
8

Giả sử có một số dự án chủ yếu được duy trì bởi các thực tập sinh thông minh, những người cuối cùng rời đi sau một khoảng thời gian. Các kịch bản được sử dụng ở đây và ở đó trong các phần chính, ví dụ, để sao lưu cơ sở dữ liệu, đổi tên, nén nó, di chuyển nó qua ssh, giải nén nó, và sau đó khôi phục nó với các cài đặt khác nhau. Bạn biết đấy, các công cụ viết kịch bản.Ngôn ngữ kịch bản "chính thức" tốt nhất cho các lập trình viên của Windows

Ngôn ngữ lập trình cho phía ứng dụng được đặt nhưng các ngôn ngữ lập trình đã được giải phóng. Hiện nay có thể có sự kết hợp lành mạnh của bash và .bat tập tin, và có lẽ một số Perl.

1) Để tránh sự gia tăng ngôn ngữ và 2) vì tôi không muốn ép buộc các lập trình viên Windows trong tương lai, tôi muốn đặt ngôn ngữ kịch bản "chính thức".

Google chọn Python cho điều này và nổi tiếng vì có thể đọc được, dễ học và có thư viện tốt; Tuy nhiên, cá nhân tôi không tìm thấy nó có thể đọc được so với ngữ pháp C, Pascal, hay Ruby.

Trong mọi trường hợp, nếu bạn bị ép buộc chỉ sử dụng một ngôn ngữ kịch bản trên máy Windows (với Cygwin nếu bạn muốn) cho tất cả các tập lệnh, bạn muốn nó là gì và tại sao?

cuộc chiến tranh tôn giáo liên quan:

+0

xem Gradle! nếu bạn muốn kịch bản của bạn có thể đọc được. Kịch bản của bạn sẽ gần với ngôn ngữ tự nhiên. Nhưng có quá nhiều "ma thuật" đằng sau ngôn ngữ Goovies nên tôi không thích nó. Tuy nhiên, Gradle sẽ sớm chuyển sang Kotlin với sự hỗ trợ mạnh mẽ của IDE. nó sẽ là một kịch bản mạnh mẽ Các công cụ xây dựng – Hiep

Trả lời

16

PowerShell - được thiết kế từ mặt đất lên là một ngôn ngữ kịch bản Windows, và nó có thể móc vào CLR cho các chức năng tiên tiến.

(vâng, tôi nhận ra điều này không chạy dưới Cygwin ... nhưng tại sao lại có yêu cầu?)

+0

Tôi muốn nói rằng Cygwin có sẵn cho ssh và những thứ khác nếu cần. –

+0

Không thành vấn đề. Google cho "powershell ssh". – dkretz

1

Powershell. Nó có bề rộng và chiều sâu, và được hỗ trợ đầy đủ (bây giờ và trong tương lai.) Không giống như Cygwin, ví dụ.

1

Gah. Tôi sẽ nói "powershell" nhưng tôi đã quá bận rộn khi viết mã quyền hạn để gửi câu trả lời của tôi ở đây, rằng 2 người khác đã đánh tôi với nó.

3

Tôi sẽ cố gắng cung cấp giải pháp thay thế - JavaScript và VBScript cũng hoạt động tốt ngay cả trên các phiên bản Windows đã biến mất và không cần cài đặt riêng biệt như PowerShell. ;) Tất nhiên, PowerShell có nhiều hơn điện: P

3

Khi tôi đã viết trình cài đặt sản phẩm đa nền tảng, mã hóa tập lệnh shell UNIX cho Linux/Mac/Solaris v.v ... thực sự dễ dàng, nhưng cố gắng làm tương đương nhiệm vụ trong BAT giống như làm việc trong bóng tối, dưới nước, với cả hai tay bị trói sau lưng. Tôi không thể tuyên bố rõ ràng rằng các tập lệnh BAT là một điểm yếu về nhân loại.

Vì vậy, những gì tôi đã nghe nói về PowerShell làm tôi hài lòng. Đó là một cuộc sống tiết kiệm cho các nhà phát triển Windows. Vấn đề duy nhất là tôi tin rằng nó vẫn là một cài đặt riêng biệt, nó không có sẵn theo mặc định (tôi đã đọc rằng nó sẽ có trên Windows Server 2008 và Windows 7).

Ồ, chỉ mất 20 năm để Microsoft thay thế các tập lệnh BAT với thứ gì đó có khả năng như vỏ UNIX, vì vậy tôi đoán tôi không nên quá vô ơn!> :-P

Lấy cài đặt cho PowerShell đây:

http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx

2

tôi mong bạn để cung cấp cho Python một cơ hội. Nó có vẻ hơi lạ đối với các lập trình viên 'C' lúc đầu, nhưng nó dễ dàng nhặt và quan trọng hơn là dễ nhớ. Bạn sẽ có thực tập các cấp độ kỹ năng khác nhau bằng cách sử dụng và sửa đổi mã để bạn muốn một cái gì đó có thể rút ra từ một cơ sở người dùng rộng. Và nếu bạn đang đi để đi đến những rắc rối của cài đặt một cái gì đó mới tại sao chọn powershell đó sẽ là một kết thúc chết cho bất cứ ai sử dụng nó.

1

Ngôn ngữ kịch bản tốt nhất mà tôi đã gặp cho các ứng dụng loại giao diện và điều khiển trong Windows là AutoHotKey. Bất cứ ai đang phát triển trên cửa sổ nên tìm hiểu về ngôn ngữ này ... Nó có thể giúp bạn tiết kiệm một số lượng lớn thời gian chỉ tự động cửa sổ chậm phát triển nhiệm vụ ...

Một trong những công cụ hữu ích nhất mà tôi đã đi qua cho Windows là Texter

Tiện ích này được viết bằng AutoHotKey và giúp tôi không phải gõ bất cứ thứ gì nhiều hơn một vài lần ... Một công cụ không thể thiếu cho một người lập trình hoặc bất cứ ai điền vào biểu mẫu hoặc vé ...!

0

Đối với mô tả cụ thể của bạn, PowerShell có vẻ như là một cách tốt để đi ... nhưng tôi sẽ tạo ra một trường hợp mạnh mẽ cho JScript trong WSH (hoặc JavaScript dưới Rhino/v.v.). Nghe có vẻ như bạn thích CYGWIN, nhưng Powershell hiện không có hỗ trợ cho các nền tảng khác (quá nhiều thứ mà tôi nghĩ - đó là một IMO thảo luận riêng, nhưng Google phải trả lời nó).

tôi khá nhiều làm cho các trường hợp ở đây: http://mikesharp.wordpress.com/2011/04/03/jquery-for-administrators/

Một số điểm nổi bật:

  • Javascript được cài đặt theo mặc định trên tất cả các hệ điều hành Windows sau khi '95 script
  • JScript làm việc "ra khỏi hộp "với Active Directory
  • ECMAScript là một tiêu chuẩn mở (mà JScript là một triển khai)
  • Thông qua ActiveX/COM JScript có thể làm hầu hết những gì Powershell có thể làm và dưới Rhino nó có sức mạnh của Java
  • có thể được sử dụng để tạo các ứng dụng HTA (và sau đó, các ứng dụng metro với WinRT/HTML5)

JScript doesn không có quyền truy cập trực tiếp vào khung công tác .NET - mặc dù có một vài công cụ JavaScript của bên thứ ba thuần túy .NET giải thích nó và có thể chia sẻ các đối tượng với nó như Jurassic và IronJS. Ngoài ra các trình bao bọc như JavaScriptDotNet (xung quanh Chrome/V8). Powershell có khả năng sẽ nhanh hơn JScript trong WSH, nhưng có thể không giống với thông dịch viên của bên thứ ba khác.

Chỉ cần vui lòng không đi với VBScript (thiếu thử/nắm bắt, không có OOP thực, độc quyền, không được chấp thuận, v.v.).

0

Nếu bạn thích tôi và muốn hiển thị các thanh tiến trình hay màn hình giật trong khi kịch bản của bạn đang thực hiện phép thuật (thay vì cửa sổ nhắc lệnh đen/xám), hãy sử dụng AutoHotkey. Hiển thị thanh tiến trình là một PITA với JScript/VBScript (WSH) và/hoặc PowerShell từ những gì tôi đã tìm thấy.Trong AHK, nó đơn giản như:

Progress, b2 m, ACME App, Doing some magic... 

Bạn cũng có thể tương tác với hầu hết mọi điều khiển trong cửa sổ bất kỳ và tự động hóa ứng dụng không tự động.

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