Để chạy nguyên bản, bạn có thể sẽ cần sử dụng Cygwin (mà tôi không thể sống thiếu khi sử dụng Windows). Vì vậy, ngay lập tức, +1 cho Cygwin. Bất cứ điều gì khác sẽ là không văn minh.
TUY NHIÊN, điều đó đang được nói, gần đây tôi đã bắt đầu sử dụng kết hợp các tiện ích để dễ dàng PORT Bash script vào Windows để đồng nghiệp chống Linux của tôi có thể dễ dàng chạy các tác vụ phức tạp được các tiện ích GNU xử lý tốt hơn.
Tôi thường có thể chuyển một tập lệnh Bash sang Batch trong thời gian rất ngắn bằng cách mở tập lệnh gốc trong một ngăn và viết tệp Batch trong ngăn khác. Các công cụ mà tôi sử dụng như sau:
Tôi thích UnxUtils hơn GnuWin32 vì thực tế là [ai đó hãy sửa cho tôi nếu tôi sai] Các utils GnuWin thường phải được cài đặt, trong khi UnxUtils là các tệp nhị phân độc lập chỉ hoạt động ngoài hộp.
Tuy nhiên, CoreUtils không bao gồm một số tiện ích * NIX quen thuộc như cURL, tiện ích này cũng có sẵn cho Windows (curl.haxx.se/download.html).
Tôi tạo một thư mục cho các dự án và luôn SET PATH =. trong tệp .bat để không có lệnh nào khác ngoài các lệnh trình bao CMD cơ bản được tham chiếu (cũng như các UnxUtils cụ thể được yêu cầu trong thư mục dự án để tập lệnh Batch hoạt động như mong đợi).
Sau đó, tôi sao chép các tệp CoreUtils .exe cần thiết vào thư mục dự án và tham chiếu chúng trong tệp .bat chẳng hạn như ". \ Curl.exe -s google.com", v.v.
Chương trình Bat2Exe là nơi điều kỳ diệu xảy ra. Khi tệp Batch của bạn đã hoàn tất và đã được kiểm tra thành công, hãy khởi chạy Bat2Exe.exe và chỉ định đường dẫn đến thư mục dự án. Bat2Exe sau đó sẽ tạo một tệp nhị phân Windows chứa tất cả các tệp trong thư mục cụ thể đó và sẽ sử dụng .bat đầu tiên mà nó đi qua để sử dụng làm tệp thực thi chính. Bạn thậm chí có thể bao gồm tệp .ico để sử dụng làm biểu tượng cho tệp .exe cuối cùng được tạo.
Tôi đã thử một số loại chương trình này và nhiều tệp nhị phân được tạo bị gắn cờ là phần mềm độc hại, nhưng phiên bản Bat2Exe mà tôi đã tham khảo hoạt động hoàn hảo và các tệp .exe được tạo quét hoàn toàn sạch sẽ.
Tệp thực thi kết quả có thể được chạy tương tác bằng cách nhấp đúp hoặc chạy từ dòng lệnh với các tham số, v.v., giống như tệp Batch thông thường, ngoại trừ bạn sẽ có thể sử dụng chức năng của nhiều công cụ mà bạn thường sử dụng trong Bash.
Tôi nhận ra điều này diễn ra khá lâu, nhưng nếu tôi có thể hơi lạc đề, tôi cũng đã viết một tập lệnh Batch mà tôi gọi là PortaBashy để đồng nghiệp của tôi có thể khởi chạy từ một mạng chia sẻ có cài đặt Cygwin di động. Sau đó, nó sẽ đặt biến% PATH% thành định dạng * NIX thông thường (/ usr / bin: / usr / sbin: / bin: / sbin), v.v. và có thể khởi chạy vào chính trình bao Bash hoặc khởi chạy tệp mạnh hơn và trình giả lập thiết bị đầu cuối MinTTY khá đẹp.
Luôn có nhiều cách để hoàn thành những gì bạn đang cố gắng thực hiện; vấn đề chỉ là kết hợp các công cụ phù hợp với công việc và nhiều khi nó phụ thuộc vào sở thích cá nhân.