Ngôn ngữ hoặc công cụ tốt nhất để tự động hóa các tác vụ thủ công tẻ nhạt [đã đóng]


9

Tất cả chúng ta đều có những nhiệm vụ xuất hiện theo thời gian mà chúng ta nghĩ rằng chúng ta nên tạo kịch bản hoặc tự động hóa tốt hơn là thực hiện thủ công.

Rõ ràng là một số công cụ hoặc ngôn ngữ tốt hơn cho công cụ này so với những công cụ khác - không ai (trong suy nghĩ đúng đắn của họ) đang thực hiện một công việc tham khảo chéo một loạt các danh sách văn bản mà PM của họ vừa đưa cho họ trong trình biên dịch.

Những công cụ hoặc ngôn ngữ nào bạn muốn giới thiệu cho loại công việc chung nhanh và bẩn mà bạn được yêu cầu thực hiện ở đâu là thời gian (chứ không phải là sự thanh lịch) là điều cốt yếu?

Bối cảnh: Tôi là một lập trình viên cũ, hiện là quản lý phát triển PM, muốn tìm hiểu một ngôn ngữ mới cho vui. Nếu tôi sẽ học được điều gì đó cho vui, tôi muốn nó hữu ích và loại trường hợp sử dụng này có khả năng xuất hiện nhiều nhất.


Đây là một phần mềm của bên thứ ba winautomation.com
PradeepGB

3
Như bạn có thể nói bằng nhiều câu trả lời dưới đây, giải pháp tốt nhất phụ thuộc vào chính xác những gì bạn muốn thực hiện và trong môi trường nào.
Đánh dấu C

@Mark - Tôi đánh giá cao điều đó nhưng tôi lý tưởng muốn tìm hiểu một điều có chung một ứng dụng nhất có thể.
Jon Hopkins

Nếu bạn muốn làm mọi thứ , tôi cho rằng bạn sẽ cần ít nhất 2-3 chương trình. Linux, Windows, MacOS? Mã, hệ thống tập tin, macro ứng dụng?
Đánh dấu C

Câu trả lời:


25

Con trăn

Câu trả lời rõ ràng (và với lý do chính đáng) là Python. Đó là một ngôn ngữ vững chắc, nền tảng chéo có sẵn. Vì tính năng động của nó, bạn có thể chạy nó một cách tương tác, rất phù hợp để kết hợp các thứ lại với nhau và nó có một lựa chọn thư viện khá lớn nên ngôn ngữ của nó có thể được áp dụng cho hầu hết các vấn đề.


Đó là vẻ đẹp. Nghĩ rằng các ngôn ngữ "kịch bản" và "lập trình" là những động vật hoàn toàn khác nhau là khá lỗi thời khi có Python.
Joonas Pulakka

Ish, một trong những điều quan trọng trong powershell là đường ống - không chắc khả năng của con trăn đó là gì (ít nhất là nói chung)
Murph

+1, Python nhận được phiếu bầu của tôi là tốt nhất xung quanh ngôn ngữ kịch bản đa mục đích.
Josh K

+1 Tương tự ở đây, python hoạt động trên hầu hết các nền tảng nếu không phải là tất cả các nền tảng và thực sự là ngôn ngữ "kịch bản" tốt hơn để hack một số mã với nhau.
Georges Duplessy


12

Autoit là vô địch. Đó là một công cụ với một ngôn ngữ.

  • Dễ học cú pháp giống BASIC
  • Mô phỏng tổ hợp phím và chuyển động chuột
  • Thao tác với các cửa sổ và quy trình
  • Tương tác với tất cả các điều khiển cửa sổ tiêu chuẩn
  • Các kịch bản có thể được biên dịch thành các tệp thực thi độc lập
  • Tạo giao diện người dùng đồ họa (GUI)
  • Hỗ trợ COM
  • Biểu thức chính quy
  • Gọi trực tiếp các chức năng API DLL và Windows bên ngoài
  • Các chức năng RunAs có thể tạo script
  • Helpfile chi tiết và các diễn đàn hỗ trợ dựa trên cộng đồng lớn
  • Tương thích với Windows 2000 / XP / 2003 / Vista / 2008 / Windows 7/2008 R2
  • Hỗ trợ Unicode và x64
  • Ký số để yên tâm
  • Hoạt động với Kiểm soát tài khoản người dùng (UAC) của Windows Vista

8

AutoHotKey

AutoHotkey là một tiện ích mã nguồn mở miễn phí cho Windows. Với nó, bạn có thể:

  1. Cộng đồng rất thân thiện và hữu ích.
  2. C như cú pháp.
  3. Tự động hóa hầu hết mọi thứ bằng cách gửi tổ hợp phím và nhấp chuột.
  4. Bạn có thể viết macro chuột hoặc bàn phím bằng tay hoặc sử dụng trình ghi macro.
  5. Tạo các phím nóng cho bàn phím, cần điều khiển và chuột. Hầu như bất kỳ phím, nút hoặc kết hợp nào cũng có thể trở thành một phím nóng.
  6. Thao tác với các cửa sổ và quy trình.
  7. Tương tác với tất cả các điều khiển cửa sổ tiêu chuẩn.
  8. Mở rộng chữ viết tắt khi bạn gõ chúng. Ví dụ: gõ "btw" có thể tự động tạo ra "bằng cách này".
  9. Tạo biểu mẫu nhập dữ liệu tùy chỉnh, giao diện người dùng và thanh menu. Xem GUI để biết chi tiết.
  10. Phím lại và các nút trên bàn phím, cần điều khiển và chuột.
  11. Tạo giao diện người dùng đồ họa (GUI).
  12. Hỗ trợ COM.
  13. Biểu thức chính quy.
  14. Gọi trực tiếp các chức năng API DLL và Windows bên ngoài.
  15. Hỗ trợ Unicode, x32 và x64.
  16. Trả lời các tín hiệu từ các điều khiển từ xa cầm tay thông qua tập lệnh máy khách WinLIRC.
  17. Chuyển đổi bất kỳ tập lệnh nào thành tệp EXE có thể chạy trên các máy tính chưa cài đặt AutoHotkey.

http://ahkscript.org/

Tôi đã tiết kiệm cho một số công ty một khoản tiền lớn bằng cách sử dụng công cụ này.


7

Perl

Perl là khá nhiều định nghĩa của tôi về nhanh và bẩn.

Perl là vô cùng linh hoạt đó là một điểm mạnh và điểm yếu. Nó không bắt buộc cấu trúc của bạn, nhưng nó ở đó nếu bạn muốn. Nó có thư viện cho tất cả mọi thứ. Nó đã được sử dụng rộng rãi trong 20 năm; Có hàng tấn mã ngoài kia để làm việc.


3
Tôi nghĩ Perl sẽ đến sớm hơn nhiều. Tôi đã xem xét Perl vì tôi đã tiếp xúc với nó nhưng nó chỉ khiến tôi muốn rửa mắt bằng thuốc tẩy mỗi khi đọc nó. $=; $ _ = \%!; $ _) = / (.) /; $ == ++ $ |; ($., $ /, $ ,, $ \, $ ", $ ;, $ ^, $ #, $ ~, $ *, $ :, @%) = ($! = ~ / (.) (.). (.) (.) (.) (.) .. (.) (.) (.) .. (.) ... ....) /, $ "), $ = ++; $. ++; $. ++; $ _ ++; $ _ ++; ($ _, $ \, $,) = ($ ~ . $ "." $; $ / $% [$?] $ _ $ \ $, $: $% [$?] ", $" & $ ~, $ #,); $, ++; $, + +; $ ^ | = $ "; $_$\$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$\$"$^$~$*.>&$=(đó là Perl thực tế - thực sự là Perl xấu - đối với những người không đọc nó).
Jon Hopkins

1
@ Tôi chủ yếu thêm nó vì nó không có ở đây. Tôi đồng ý rằng nó có thể trở nên khá lộn xộn, nó không thi hành bất kỳ kỷ luật nào đối với bạn, bạn phải tự mang theo. Xem xét phần lớn thời gian nó được sử dụng cho kịch bản nhanh và bẩn, bạn sẽ có được những gì bạn thấy.
Steve Jackson

2
Đúng - và Perl không nên đổ lỗi cho sự lộn xộn, điều đó thuộc về lập trình viên. Ngoài ra, nếu ngôn ngữ lập trình của bạn chỉ cho phép bạn viết mã tốt, bạn sẽ không nhận được tín dụng nào khi làm như vậy ...
Jon Hopkins

1
Tôi nghĩ Perl là ngôn ngữ kịch bản tốt nhất hiện nay - nó không gây tranh cãi và cho phép làm những gì bạn cần làm mà không cần nắm bắt.
Paul Nathan

6

Quyền hạn

Điều này ít chung chung hơn Python - nhưng nếu bạn tồn tại trong môi trường Windows thì có lẽ nó sẽ hữu ích hơn.

Nó có nhiều shell / script hơn so với Python (vì đó là cái gì) nhưng nó có thể kết nối với .NET framework mang lại cho bạn khả năng chuyên sâu. Nó cũng có hỗ trợ cộng đồng rộng rãi.

Microsoft đã bận rộn thêm quyền hạn vào các sản phẩm máy chủ của họ (do đó "hữu ích hơn") và đã giới thiệu từ xa để cho phép bạn chạy các tập lệnh ở đó từ bảng điều khiển của bạn ở đây .


5
Có thể các tia sáng sáng đã hạ cấp mà không bình luận xin vui lòng giải thích? Cảm ơn.
Murph

5

Một vỏ unix hiện đại. Ví dụ bash.


Tất nhiên, giả sử rằng bạn đang chạy trong một môi trường tự nhiên hỗ trợ nó (hoặc bạn tính sức mạnh tương đương với vỏ unix hiện đại (- :)
Murph

3

elisp, nếu bạn đã thấy sự phong phú của các nhiệm vụ, nó được sử dụng để hoàn thành thông qua nền tảng Emacs cơ bản của nó. Emacs có thể tránh tất cả các chức năng của trình quản lý cửa sổ toàn diện, IDE, Office, trình duyệt, ứng dụng email, ứng dụng trò chuyện, trình bao, trình thám hiểm hệ thống tập tin, v.v. Hầu hết được thực hiện thông qua các chương trình elisp.


1

Đối với một số tác vụ, Hành động có thể phù hợp.

Nó có một quy trình sắp xếp lưu đồ, nơi bạn có thể thêm actionsđể được chạy tuần tự. Mới actionscó thể được viết bằng java.

Tuyên bố miễn trừ trách nhiệm: Tôi chưa sử dụng nó.


1

Để tự động hóa phức tạp, bạn có thể muốn sử dụng Robot Framework . Khung này chủ yếu nhằm mục đích thử nghiệm tự động nhưng cũng có thể được sử dụng cho tự động hóa nói chung.

Bạn có thể dễ dàng viết thư viện của riêng mình bằng Python và có một số thư viện tồn tại trước đó (selenium, AutoIt , telnet, ssh, swing, v.v.) cho phép bạn lái tất cả mọi thứ rất mạnh nếu bạn tham gia một môi trường hỗn hợp.

Nó được điều khiển từ khóa để bạn có thể tạo từ khóa mới và từ đó loại bỏ các nhiệm vụ lặp đi lặp lại và thậm chí có một IDE đang được phát triển tích cực cho phép thực hiện một số phép tái cấu trúc đơn giản.


1
  • Những kẻ GUI trong tổ chức của tôi như TestComplete để tự động hóa trong Windows.
  • Đối với kịch bản CLI, khoảng 90% Perl và 10% Bash

Tôi đã làm việc để cùng nhau thực hiện một số thói quen Lisp thông thường để giúp viết kịch bản, nhưng nó không dễ dàng bắt nguồn từ nhiệm vụ đó như Perl.


0

Đối với các cửa sổ, tôi đánh giá cao AutoIt (http://autoitscript.com). Đảm bảo cài đặt gói Scite từ phần tải xuống.

http://autoitscript.com/forum là một tài nguyên tuyệt vời để nhận trợ giúp và tìm chức năng của UDF để đưa vào các tập lệnh.

AutoIt có thể kiểm soát các cửa sổ ứng dụng và điều khiển cho phép bạn tự động hóa mọi thứ. Nó cũng không yêu cầu phụ thuộc sau khi bạn biên dịch bạn thực thi.


0

Tôi có cùng một vấn đề là sử dụng nhiều ngôn ngữ cho các bộ tự động hóa khác nhau. Tôi là cố vấn cao cấp cho một công ty Dịch vụ CNTT ở Ấn Độ. Mỗi lần tôi hỏi ý kiến ​​khác nhau.

ngôn ngữ cho mục đích này, tôi đã có thời gian khó khăn để chứng minh nó cho quản lý . Tôi thậm chí đã thảo luận với bạn bè của tôi (như nói chuyện thông thường) về việc phát triển một ngôn ngữ thống nhất giải quyết tất cả các nhu cầu tự động hóa và vẫn đa nền tảng. Nếu có sẵn, thì nó có thể

thay đổi thế giới kịch bản. Theo tôi biết, ánh xạ chúng ta thường sử dụng đi

Ngôn ngữ và miền sử dụng

Tự động - Tự động hóa GUI dựa trên Windows Bash - Tự động hóa dựa trên Unix chủ yếu liên quan đến tương tác hệ thống Perl - Tự động xử lý dữ liệu với ít tương tác hệ thống Mong đợi - Yêu cầu tương tác dựa trên ký tự. (không thể giải quyết bằng Perl, Bash) VBS - Kịch bản dựa trên Windows

Bất kỳ Tự động hóa nào luôn đi kèm với một hoặc nhiều lời gọi từ xa để lấy thông tin hoặc xuất bản kết quả. Dưới đây là danh sách khác nhau giải quyết hệ điều hành lớn.

Gọi tập lệnh từ xa (công cụ)

Windows -> Windows

psexec, Powershell

Windows -> Unix

Plink, Quest Plink -> SSH Server

Unix -> Unix

Máy khách SSH -> Máy chủ SSH

Unix -> Windows

Winexe, wmic -> WMI Agent check_nrpe -> NRPE_NT Agent

Trong danh sách trên, bạn có thể dễ dàng nhận ra rằng không có ngôn ngữ nào có thể thay thế ngôn ngữ khác trong bộ tính năng. Chúng tôi đã sống với những người đó cho đến khi chúng tôi có một hệ điều hành chung và tiêu chuẩn chung về các giao thức và API giao tiếp.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.