2013-04-27 22 views
6

Tôi có số lượng kiến ​​thức khá tốt với Hàng loạt. Tôi đang cố gắng để port một kịch bản lô trên Mac/UNIX, nhưng tập tin batch của tôi có một điều kéo và thả cho nó. Thông qua vô số các tìm kiếm của Google, tôi đã nghĩ ra không có gì. Tất cả đều nói rằng bạn có thể kéo và thả vào một Cửa sổ đầu cuối - không tốt cho các kịch bản lệnh không cần đầu vào. Dưới đây là mã cho hàng loạt Tôi có:Kéo và thả Tệp vào tệp .sh

cd %USERPROFILE%

7za x %* -o%USERPROFILE%\Desktop\Temp

7za a %1 %USERPROFILE%\Desktop\Temp*

cd %USERPROFILE%\Desktop rmdir/q/s Temp \

Không đặc biệt lo lắng về lệnh 7za (vì Archive Utility), cd% USERPROFILE% (vì Terminal bắt đầu trong hồ sơ của người dùng), rmdir, cd, và như vậy, vì chúng chỉ là các lệnh tập tin cơ bản. Nhưng tôi không biết mã để tham chiếu đến tệp đã bị xóa/mở bằng tập lệnh .sh. Vì vậy, nếu ai đó biết mã đó, hãy cho tôi biết. Tôi biết đây là một điều đơn giản, nhưng bạn không thể biết mọi lệnh, đặc biệt là khi giao dịch với các ngôn ngữ lập trình không quen thuộc. Cảm ơn trước.

Trả lời

10

Tôi không biết cách nào để tập lệnh thô chấp nhận các tệp kéo và thả, nhưng có một số tùy chọn để bao bọc nó trong một thứ khác chấp nhận kéo và thả và chuyển các tệp vào một tập lệnh. IMO tùy chọn nhanh nhất là bao bọc tập lệnh trong ứng dụng Automator. Chạy /Applications/Automator.app, chọn Ứng dụng làm loại cho dự án mới của bạn, kéo hành động "Chạy Shell Script" từ danh sách hành động (cột thứ hai) vào luồng công việc (cột bên phải), đặt "Nhập đầu vào" thành " làm đối số ", dán vào tập lệnh trình bao, sau đó lưu ứng dụng. Làm xong.

Các tùy chọn khác để bao gồm tập lệnh shell bao gồm: AppleScript, PlatypusDropScript.

+0

Tôi đã thử nghiệm kéo và thả trực tiếp lên tệp .sh (trước khi bạn trả lời câu hỏi này) và dường như nó không hoạt động. Chưa kể rằng tôi sẽ phải mở .sh tự động trong Terminal thay vì TextEdit, mà người dùng sẽ phải làm điều đó trước. Có thể nó sẽ làm việc với các tập tin .command thay thế? – DaGamer12345

+0

Tôi chưa tìm được cách nào, nhưng nếu tôi muốn biết về nó. –