Kịch bản hữu ích nhất bạn viết cho cuộc sống hàng ngày là gì? [đóng cửa]


132

Chỉ cần tự hỏi những kịch bản / chương trình nhỏ mà mọi người ở đây đã viết giúp họ với cuộc sống hàng ngày của mình (hay không liên quan đến công việc).

Bất cứ điều gì đi, đột phá hay không. Đối với tôi ngay bây giờ, đó là một kịch bản python nhỏ để tính tốc độ chạy cho khoảng cách và thời gian đã trôi qua.


Tôi đã thấy một số tác phẩm thực sự thú vị liên quan, nhưng không nhiều kịch bản liên quan đến "cuộc sống hàng ngày". Sau đó, một lần nữa, nếu một cái gì đó tại nơi làm việc đang hủy hoại cuộc sống của bạn và bạn đã sửa nó với một kịch bản gọn gàng thì tôi sẽ là ai để phán xét?
Kyle Walsh

10
Một trong những câu hỏi đá quý làm cho stack tràn giá trị trong khi. Bất kỳ hướng dẫn nào cho thấy nó bị đóng không nên ở đó, bất kỳ mod nào đã bỏ phiếu để đóng nó không nên là một.
Bill K

Đây là một trong những cho tôi: github.com/codeforester/base . Khung này đã tăng năng suất của tôi với tư cách là một người SRE / DevOps bằng những bước nhảy vọt, đồng thời tăng sự gắn kết và hợp tác của nhóm.
codeforester

Câu trả lời:


116

oChìa khóa của tôi rơi trên máy tính xách tay của tôi; Vì vậy, tôi đã viết một chương trình thay thế hai 0tổ hợp phím trong vòng 200 MS của nhau như một o, hai 0tổ hợp phím trong phạm vi 700 MS của nhau như một 0và bỏ qua phần còn lại; vì vậy tôi có thể sử dụng máy tính xách tay của mình trước khi tôi đi thay thế bàn phím.

Ồ; Tôi không biết điều này sẽ rất phổ biến: p

Về cách thức - Microsoft trưng bày một tính năng API nhỏ xinh có tên là Móc .

Sử dụng cái móc đó; Tôi đã có thể viết một "bộ lọc" đã làm những gì tôi cần nó (gợi ý: nếu bạn quay lại 1 với các cửa sổ gọi lại của bạn sẽ không xử lý tổ hợp phím).

Lý do tôi biết về điều này thực sự không phải vì tôi đang viết một keylogger - mà bởi vì tôi đã viết một chương trình smiler cho Synergy một thời gian trước đây.

Và vâng. Tôi đã viết một chương trình khác hoán đổi các khóa số alpha bằng một phím số alpha ngẫu nhiên và có; nó thật sự rất buồn cười: D


1
Tôi có thể đã nghĩ đến việc chỉ cần gõ vào phần còn lại của phím bị lộ, nhưng đó chắc chắn là một cách thú vị xung quanh nó :)
warren

2
Tôi sẽ không hiểu tại sao tôi không nghĩ rằng ... Tôi có cùng một biểu tượng ... :-(
asterite

1
Điều này làm tôi nhớ đến truyện tranh XKCD này: xkcd.com/196
JesperE

59
HẠ! Y00u sẽ không thể t00 loại 00n một keyb00ard tiêu chuẩn một lần nữa với các ngón tay y00ur đào tạo lại! G0000d May mắn!
Doug L.

107
Câu hỏi lớn là làm thế nào bạn quản lý để viết chương trình đó mà không sử dụng chữ 'o'?
e.James

115

Tôi không còn mã nữa, nhưng có lẽ kịch bản hữu ích nhất tôi đã viết là, tin hay không, trong VBA. Tôi đã có một đồng nghiệp khó chịu, người có một ngòi nổ ngắn đến mức tôi gọi anh ta là Cherry Bomb. Anh ta thường nổi điên khi khách hàng gọi và sau đó đứng dậy và bắt đầu nói với tôi về bức tường tủ, giết chết năng suất và tinh thần của tôi.

Tôi luôn mở Microsoft Excel. Khi anh ấy làm điều này, tôi sẽ chuyển sang Excel và ở đó, trên thanh công cụ, là một biểu tượng mới với hình ảnh quả bom anh đào. Tôi sẽ kín đáo bấm vào đó ... và sẽ không có gì xảy ra.

Tuy nhiên, ngay sau đó tôi sẽ nhận được một cuộc gọi điện thoại và sẽ nói điều gì đó như "yeah, yeah, nghe có vẻ tệ. Tôi nên xem qua." Và sau đó tôi sẽ đứng dậy, xin lỗi Cherry Bomb và bỏ đi.

Điều xảy ra là chúng tôi đã sử dụng NetWare và nó có một hệ thống nhắn tin nguyên thủy được tích hợp. Khi tôi nhấp vào nút, một tập lệnh VBA nhỏ sẽ gửi tin nhắn NetWare cho bạn bè của tôi, nói với họ rằng Cherry Bomb đã hoạt động trở lại và họ sẽ vui lòng gọi cho tôi. Anh ấy không bao giờ tìm ra nó :)


94
Bạn biết bạn là một lập trình viên khi bạn viết một chương trình để thoát khỏi một tình huống xã hội khó xử.
Cadoo

7
Tuyệt vời! Đây là kỹ thuật xã hội tốt nhất của nó!
Beska 17/03/2016

1
Hãy hy vọng Cherry Bomb không sử dụng StackOverflow :)
Pedro Luz

94

Một tập lệnh bash được gọi lên để nếu tôi vào /a/very/deeply/nested/path/somewherevà tôi muốn "tăng" thư mục N , tôi có thể gõ :up N

#!/bin/bash
LIMIT=$1
P=$PWD
for ((i=1; i <= LIMIT; i++))
do
    P=$P/..
done
cd $P

Ví dụ:

/a/very/deeply/nested/path/somewhere> up 4
/a/very> 

Lưu ý bởi gmatt:

Làm việc với công việc tuyệt vời ở trên, nó có thể được mở rộng thành chức năng quay lại bằng cách đặt phần sau vào bashrc của bạn:

function up( )
{
LIMIT=$1
P=$PWD
for ((i=1; i <= LIMIT; i++))
do
    P=$P/..
done
cd $P
export MPWD=$P
}

function back( )
{
LIMIT=$1
P=$MPWD
for ((i=1; i <= LIMIT; i++))
do
    P=${P%/..}
done
cd $P
export MPWD=$P
}

4
1 Tuyệt đối f 'ing rực rỡ! Tôi sẽ sử dụng nó rất nhiều !
wzzrd

12
Tại sao bạn sẽ thay thế mã dễ đọc bằng mã khó đọc? Máy tính của bạn có chạy nhanh hơn nếu bạn có ít dòng mã nguồn hơn không?
Beska 17/03/2016

3
gnud: thay thế mã sạch và rõ ràng của tôi bằng rác? Không, cám ơn.
foxdonut

2
xuất sắc! Tôi đã mở rộng điều này để bao gồm một backphương thức, vì vậy bất cứ khi nào bạn sử dụng hết, bạn có thể sử dụng lại để dễ dàng di chuyển qua lại. Để sử dụng, hãy đặt cái này vào bashrc của bạn (xin lỗi về định dạng shit): function up () {LIMIT = $ 1 P = $ PWD cho ((i = 1; i <= LIMIT; i ++)) làm P = $ P / .. thực hiện chức năng cd $ P xuất MPWD = $ P} trở lại () {LIMIT = $ 1 P = $ MPWD cho ((i = 1; i <= LIMIT; i ++)) làm P = $ {P% / ..} thực hiện cd $ P xuất MPWD = $ P}
ldog

2
Tôi có điên không? Làm thế quái nào nó hoạt động? cd trong một tập lệnh sẽ cd ở đó nhưng khi tập lệnh tồn tại, bạn sẽ quay lại cùng thư mục gốc /! bash của tôi làm việc khác với tất cả của bạn?
johnnyB

67

Nút reset siêu từ xa.
Một phần cứng của phần cứng mô phỏng siêu đặc biệt (quay lại những ngày mà một căn phòng chứa đầy các thùng VME đã làm ít hơn GPU của bạn) mà một người dùng ở bên kia thế giới sẽ gặp sự cố vào đầu giờ sáng. Phải mất một giờ để vào phòng thí nghiệm và thông qua an ninh.

Nhưng chúng tôi không được phép kết nối với bộ điều khiển siêu đặc biệt hoặc sửa đổi phần cứng. Giải pháp là một máy trạm DEC cũ với máy in ma trận chấm epson, dán thước nhựa vào núm nạp giấy, đặt máy in gần nút đặt lại.
Đăng nhập vào WS như một người dùng thông thường (không cho phép root, tất cả các cổng bên ngoài bị khóa), in một tài liệu với các dòng 24blank - xoay núm nạp giấy và thước kẻ được ấn trên thiết lập lại trên phần cứng siêu đặc biệt .


Câu chuyện tuyệt vời! Không chắc chắn có tin bạn hay không;)
Greg Whitfield

Cuối cùng nó đã được thay thế bằng một rơle công tắc nguồn được kết nối với đường DTR trên cổng nối tiếp - nhưng yêu cầu truy cập root. Và tôi nên nói rằng DEC WS vì nó đang chạy Ultrix.
Martin Beckett

Wow, độ dài chúng tôi đi để có được bằng an ninh!
Chris Ballance

1
Nhắc nhở tôi về điều này: thedailywtf.com/Articles/Open-Sesame.aspx
rjmunro

5
Nếu chúng ta có khay CD trong những ngày đó thì đó sẽ là một giải pháp dễ dàng hơn,
Martin Beckett

63

Trên Windows XP, tôi đã thiết lập một công việc AT để chạy lệnh này hàng ngày trong C: \

dir /s /b * > dirlist.txt

Điều này liệt kê đường dẫn đầy đủ của tất cả các tệp trên ổ C. Sau đó, bất cứ khi nào tôi cần tìm một tập tin, tôi có thể sử dụng findstr. Nhịp đập này sử dụng Windows Explorer Search vì nó cho phép kết hợp biểu thức chính quy trên toàn bộ đường dẫn. Ví dụ:

findstr ".jpg" dirlist.txt
findstr /i /r "windows.*system32.*png$" dirlist.txt

Đây là một giải pháp rất nhanh để thiết lập và thật tuyệt vời nếu bạn thấy mình có cài đặt Windows mới và không có kết nối internet.

Nếu bạn cần tìm kiếm trong một số loại tệp nhất định cho một số mẫu, trước tiên hãy liệt kê tất cả các tệp bạn cần kiểm tra, sau đó tìm kiếm trong đó. Ví dụ: để tìm chương trình Java hoặc Python lật hình ảnh bạn có thể làm điều này:

findstr "\.java \.py" dirlist.txt > narrowlist.txt
findstr /i /r /f:narrowlist.txt "flip.*image"

8
anh bạn, thật là một ý tưởng tuyệt vời
Epaga

10
Đây chính xác là những gì chương trình định vị unix làm
Mark Baker

4
@Mark Điều đó cho thấy ngay cả khi bạn phải làm việc với Windows, bạn có thể học được rất nhiều thứ hữu ích từ unix
Liam

1
Tôi đã tạo một trong những tập lệnh này cho thư mục "Tài liệu" của mình, mà tôi dường như không bao giờ có thể giữ được tổ chức :-)
sep32

1
và ở đó tôi đang sử dụng tìm kiếm Google Desktop: D
Inspite

38

Tôi có một tập lệnh Python tự động chạy khi tôi cắm máy ảnh kỹ thuật số của mình vào.

Nó sao chép tất cả các hình ảnh ra khỏi thẻ trên máy ảnh, sao lưu chúng và sau đó tải chúng lên Flickr.


Đoạn tải lên Flickr xuất phát từ uploadr.py (mà tôi không thể lấy tín dụng).

Đây là mã Python để dỡ máy ảnh. Nó đệ quy thông qua SRCDIR và đặt tên cho từng hình ảnh theo ngày & giờ trước khi sao chép hình ảnh vào DESTDIR.

#!/usr/bin/python

import os
import string
import time
import shutil

###################################################
__SRCDIR__ = "/mnt/camera"
__DESTDIR__ = "/home/pictures/recent"
###################################################
def cbwalk(arg, dirname, names):
    sdatetime = time.strftime("%y%m%d%H%M")
    for name in names:
        if string.lower(name[-3:]) in ("jpg", "mov"):
            srcfile = "%s/%s" % (dirname, name)
            destfile = "%s/%s_%s" % (__DESTDIR__, sdatetime, name)
                    print destfile
            shutil.copyfile( srcfile, destfile)
###################################################
if __name__ == "__main__":
    os.path.walk(__SRCDIR__, cbwalk, None)

Chia sẻ mã và tôi sẽ chia sẻ phiếu bầu :)
Ngay cả Mien

40
Điều này sẽ hoạt động tuyệt vời cho đến ngày bạn quên đi những bức ảnh đặc biệt mà bạn đã chụp vào đêm hôm trước ...
Ed Guiness

Điều đầy đủ thực sự là một quá trình hai bước. Bước đầu tiên loại bỏ mọi thứ khỏi máy ảnh và đổi tên chúng. Bước thứ hai có một dấu nhắc hỏi bạn có muốn tải lên Flickr không. Điều đó nhiều hơn bởi vì tải lên giết chết băng thông của tôi hơn là vì tôi lo lắng về những gì tôi đang tải lên.
Đánh dấu Biek

5
Làm thế nào để bạn kích hoạt bit 'chạy trên phích cắm'?
ijw

@ijw Đối với Unix, xem tại đây: unix.stackexchange.com/questions/28548/... - cửa sổ: superuser.com/questions/219401/...
Chris

32

Vài năm trước tôi đã viết một ứng dụng winforms với sự giúp đỡ của một vài người chơi win32 để tự khóa máy tính của tôi trong một giờ để nó buộc tôi phải đi và tập thể dục. Vì tôi lười? Không ... bởi vì tôi đã có một mục tiêu tập thể dục cá nhân. Đôi khi bạn chỉ cần một cú đá nhỏ để bắt đầu :)


16

Tôi đã viết một kịch bản Python sẽ đi đến tất cả các truyện tranh web tôi đã đọc và tải xuống bất kỳ truyện tranh mới nào. Tôi chỉ chạy nó một lần một ngày và không cần phải truy cập từng trang web riêng lẻ, chỉ cần truy cập / Truyện tranh / Thư mục. ;)


hừm Nếu đây là những truyện tranh được quảng cáo hỗ trợ, tôi sẽ lo lắng rằng bạn không "trả tiền" bằng cách mạo hiểm xem quảng cáo :-)
Matthew Scouten

2
@Matthew - Tôi thấy quan điểm của bạn, nhưng tôi không hiểu tại sao không xem quảng cáo là vấn đề đạo đức / đạo đức. Nếu đó là trường hợp, các tác giả của No-Script và trình chặn cửa sổ bật lên có rất nhiều giải thích để làm. ;)
Onion-Knight

1
Tôi không có bất kỳ vấn đề nào với trình chặn cửa sổ bật lên, vì cửa sổ bật lên là một cách lạm dụng để hiển thị quảng cáo. Đó không hẳn là một vấn đề đạo đức, hơn nữa là vấn đề công bằng. Tôi sử dụng một trình chặn quảng cáo trên hầu hết các trang web, nhưng tắt nó cho một số trang web mà tôi thường xuyên truy cập và muốn hỗ trợ. Tìm nạp truyện tranh với một kịch bản python (và hoàn toàn không bao giờ nhìn thấy trang web) cảm thấy qua dòng đối với tôi, nhưng tôi không thể cho bạn biết chính xác dòng đó ở đâu.
Matthew Scouten

14

Kịch bản sao lưu .cmd của tôi. Nó chạy trên máy chủ của tôi mỗi đêm và đặt tên cho các tệp sao lưu theo ngày trong tuần. Một tuần đầy đủ các bản sao lưu đã cứu tôi (và gia đình tôi) nhiều lần:

:: Sao lưu đối số:
:: / V Xác minh? (có không)
:: / R Hạn chế quyền truy cập vào chủ sở hữu? (có không)
:: / RS Lưu trữ di động? (có không)
:: / Nén phần cứng (bật / tắt)
:: / M Loại sao lưu (bình thường / sao chép / chênh lệch / tăng / hàng ngày)
:: / L Loại tệp nhật ký (f / s / n)
:: / D "Mô tả"
:: / J "Tên công việc"
:: / F "Tên tệp"

CÀI ĐẶT

:: đảm bảo rằng các ổ đĩa mạng được gắn kết
GỌI C: \ bat \ configs \ MapShares-home.cmd
lặp lại

đặt hôm nay =% NGÀY: ~ 0,3%
if% hôm nay% == Mon đặt ngày hôm qua = 0Sunday
if% hôm nay% == Thứ ba đặt ngày hôm qua = 1 Thứ hai
nếu% hôm nay% == Thứ tư được đặt ngày hôm qua = 2 ngày
if% hôm nay% == Thu đặt ngày hôm qua = 3Wednesday
if% hôm nay% == Thứ sáu đặt ngày hôm qua = 4Thứ ba
if% hôm nay% == Sat đặt ngày hôm qua = 5Friday
if% hôm nay% == Mặt trời đặt ngày hôm qua = 6Saturday

đặt configsDir =% ~ dp0
đặt storePath = C: \ mybackups

:: (ví dụ: tệp C Thứ Hai)
đặt tiêu đề =% ngày hôm qua% sao lưu


echo% DATE %% TIME %% title%> "% storePath% \% ngày hôm qua% _backup.log"

GỌI BackupConfigs.bat

:: Tạo tệp BKF mới
gọi C: \ WINDOWS \ system32 \ ntbackup.exe sao lưu ^
    "@% configsirir% \ Daily.bks" ^
    / V: có / R: không / RS: không / HC: tắt / M bình thường / L: s ^
    / D "% tiêu đề%" ^
    / J "% tiêu đề% .job" ^
    / F "% storePath% \% ngày hôm qua% .bkf" ^
    >> "% storePath% \% ngày hôm qua% _backup.log"

echo% DATE %% TIME% Đã hoàn thành >> "% storePath% \% ngày hôm qua% _backup.log"

sao chép "% storePath% \% ngày hôm qua% .bkf" "V: \ Sao lưu \ NEPTUNE"

GỌI C: \ bat \ sạch-temps.bat

defrag -v C:> "% storePath% \% ngày hôm qua% _defrag.log"

:: hiển thị các thư mục sao lưu
bắt đầu / D "C: \ bat \ Sao lưu \" checkbkf.bat

KẾT THÚC

::tạm ngừng


2
Một số thủ thuật tập tin .cmd đẹp đó. Tôi biết bạn có thể sử dụng '^' để thoát khỏi chuyển hướng và đường ống, nhưng tôi không biết bạn cũng có thể sử dụng nó như để tiếp tục dòng. Thật tuyệt :)
Patrick Cuff

Thế giới cần ít kịch bản .bat, không nhiều hơn! :-)
JesperE

2
Và hệ quả là thế giới cần ít Windows hơn. Cho đến lúc đó, đây là mẫu số ít phổ biến nhất. Tôi chia sẻ kịch bản này bởi vì hàng trăm người có thể sử dụng nó.
Chris Noe

14

"backup.sh" kiểm tra nội dung của một thư mục và gửi nó đến tài khoản gmail của tôi.


Bây giờ thì mát mẻ. Mặc dù tôi không có máy tính nào trong số hàng chục thiết lập smtp. Thật đáng buồn.
mxcl

Chúng tôi có thể có mã xin vui lòng?
Kostas

14

Tôi đã viết một kịch bản mà cuối cùng được sử dụng hàng ngày trong nhóm của tôi. Khi tôi từng làm việc cho Intel, chúng tôi đã có một ứng dụng nói chuyện với cơ sở dữ liệu truy cập để lấy một đống thông tin đăng ký (tôi đã làm việc về việc xác thực chipset). Nó sẽ lấy thông tin này (từ truy vấn SQL) và kết xuất nó vào tệp CSV, tệp HTML và tệp Excel. Toàn bộ quá trình mất gần 2 giờ. Không phải trò đùa. Không biết tại sao nó lại mất nhiều thời gian như vậy. Chúng tôi sẽ bắt đầu nó một giờ trước khi ăn trưa, đi ăn trưa, và sau đó quay trở lại.

Tôi nghĩ rằng phải có một cách tốt hơn để làm điều này. Tôi đã nói chuyện với nhóm duy trì cơ sở dữ liệu đăng ký và nhận mã SQL từ họ. Sau đó tôi đã viết một tập lệnh perl lấy dữ liệu và xuất nó thành các định dạng CSV, HTML và Excel. Thời gian chạy? Khoảng 1-2 giây. Một cải tiến tốc độ tuyệt vời.

Tôi cũng đã viết một vài kịch bản khi tôi đang triển khai ở Iraq năm 2006 (tôi đã phục vụ trong Lực lượng Vệ binh Quốc gia trong 9 năm - đã ra ngoài vào tháng 12). Chúng tôi đã sử dụng ứng dụng cũ này có tên là ULLS-G (Hệ thống hậu cần cấp đơn vị - Mặt đất) được viết bằng ADA và ban đầu chạy trên DOS. Họ đã hack nó đủ để nó chạy trên Windows XP trong shell lệnh. Hệ thống này không có giao diện chuột. Mọi thứ đều thông qua bàn phím và nó KHÔNG có chức năng hàng loạt. Vì vậy, hãy nói rằng bạn muốn in giấy phép cho tất cả các nhà khai thác xe? Chà ... chúng tôi có 150 binh sĩ trong đơn vị của chúng tôi nên phải mất một thời gian dài. Giả sử mọi người đều có đủ điều kiện trên một phương tiện mới và bạn muốn thêm nó vào trình độ điều hành của mọi người? Bạn phải làm từng cái một.

Tôi đã có thể tìm thấy trình điều khiển ODBC cho cơ sở dữ liệu SAGE (những gì ULLS-G đã sử dụng) và vì vậy tôi đã viết các tập lệnh perl có thể nói chuyện với cơ sở dữ liệu SAGE. Vì vậy, những thứ đã mất hơn một giờ, bây giờ chỉ mất vài giây. Tôi cũng đã sử dụng các kịch bản của mình và trình điều khiển để báo cáo. Chúng tôi phải báo cáo tất cả thông tin lên tiểu đoàn mỗi sáng. Các đơn vị khác sẽ viết thông tin bằng tay mỗi sáng. Tôi đã tạo ra một macro Excel đã nói chuyện sử dụng cùng một trình điều khiển và nói chuyện với cơ sở dữ liệu SAGE và cập nhật bảng tính Excel theo cách đó. Đó là macro Excel phức tạp nhất và duy nhất tôi từng viết. Nó được đền đáp vì họ đã trao cho tôi Huân chương khen thưởng quân đội. Vì vậy, yeah, tôi đã có một huy chương trong quân đội để viết kịch bản perl :) Bao nhiêu người có thể nói điều đó? ;)


13

Tôi là một phi công tư nhân. Tôi đã viết một vài kịch bản có được thông tin thời tiết cho các sân bay địa phương từ aviationweather.gov. Chúng rất hữu ích cho câu trả lời nhanh cho câu hỏi "Hôm nay có phải là một ngày tốt để bay không?"


Tôi hy vọng cho hành khách của bạn rằng kịch bản của bạn sẽ thất bại tốt đẹp nếu aviationweather.gov thay đổi bố cục và phá vỡ trình phân tích cú pháp của bạn!
MatthieuP

1
Bạn có thể vui lòng chia sẻ kịch bản?
JJD

12

Một tập lệnh Greasemonkey loại bỏ các bình luận [*] rõ ràng ngu ngốc khỏi trang web chơi game Kotaku.com.

[*] Như được xác định bởi các lỗi chính tả phổ biến, viết chữ hoa, sử dụng quá nhiều "LOL" và các heuristic tương tự.


6
Mát mẻ. Tôi cảm thấy như trích xuất các biểu thức chính quy và tạo các câu lệnh ngẫu nhiên chỉ bao gồm các biểu thức khớp với một hoặc nhiều trong số chúng.
gnud

11

alias dir = 'ls -al' là tập lệnh ưa thích của tôi.


4
eww ... Tôi sẽ thấy mình muốn đi một con đường khác ...
ớn lạnh42

1
Bạn phải tự hỏi tại sao mọi người bắt đầu bỏ phiếu trả lời cho các câu hỏi với một thẻ chủ quan .... quan điểm của frickin là gì?
Greg Whitfield

Vâng, điều này rất quan trọng :)
Nick

11

Một trình quét HTML có luồng để tải xuống tất cả phụ đề có sẵn cho sê-ri / phim từ một trang web gây khó sử dụng (bạn phải nhấp như thế 4 lần sau khi tìm kiếm để đến trang tải xuống, chỉ để hiển thị thêm quảng cáo). Bây giờ tôi chỉ cần đặt tiêu chí tìm kiếm và nhấn tải xuống.


2
Anh ấy sẽ chia sẻ nó, và trang web sẽ tìm ra :). Thà không chia sẻ đôi khi ...
Camilo Díaz Repka

11

Một tập lệnh perl loại bỏ danh sách Craigslist cục bộ của tôi, theo các danh mục đã chọn, vào SQL DB mà sau đó tôi có thể truy vấn.

V2 của bản cập nhật DB này với bộ hẹn giờ và thông báo cho tôi nếu tôi có kết quả phù hợp với bất kỳ truy vấn nào, về cơ bản cung cấp cho tôi một tác nhân nền cho CL.


8

Đổi tên tập tin thông qua kéo và thả.

Trước đây tôi đã tạo một VBScript nhỏ chấp nhận RegEx và thay thế tên tệp cho phù hợp. Bạn chỉ cần thả một loạt các tập tin hoặc thư mục trên đó. Tôi thấy rằng sẽ rất hữu ích trong suốt những năm qua.

gist.github.com/15824 (Coi chừng, các bình luận bằng tiếng Đức)


Có vẻ ngớ ngẩn để bỏ phiếu một mã mô tả sans.
Chris Noe

Mã sẽ là một chút quá nhiều cho trang web. Có lẽ "nhỏ" là một chút thiếu. Đó là 170 LỘC.
Tomalak

Tôi có thể tải tập lệnh lên một nơi nào đó và đăng liên kết ở đây nếu bạn quan tâm.
Tomalak

8

Tập lệnh Python nhanh và bẩn tìm kiếm DNS cho google.com cứ sau 5 giây và phát ra tiếng bíp một lần nếu thành công và hai lần nếu thất bại.

Tôi đã viết điều này trong một thời gian khi tôi phải sống với một mạng gia đình rất dễ vỡ. Nó cho phép tôi biết ngay trạng thái của mạng ngay cả khi tôi đang đứng đầu dưới bàn làm việc trong phòng với cả hai tay đầy cáp mạng và đèn pin trong miệng.


5 giây? Phải thực sự khó chịu.
Ponkadoodle

Vâng, nó đã đưa tôi dơi sau 30 phút hoặc lâu hơn. Ý tưởng là càng gần với phản hồi thời gian thực càng tốt. Tôi thường có thể sửa chữa mọi thứ trong khoảng 10 phút.
Matthew Scouten

8

Điều này, từ một bài đăng trên blog của tôi vài tháng trước, đã trở thành một ý tưởng mà tôi nghĩ là tuyệt vời đối với một trong những vụ hack nhỏ nhất mà tôi đã ho trong bộ nhớ gần đây. Tôi trích dẫn nó đầy đủ ở đây:

==================

Tôi dành rất nhiều thời gian trong bash. Đối với người không quen biết, bash là một hệ thống mà bạn sẽ tìm thấy trên hầu hết các máy unix và, may mắn thay, một số cửa sổ và mọi máy Mac ngoài kia. Thoạt nhìn, nó không khác gì giao diện dòng lệnh, và do đó, tắt radar của hầu hết người dùng, những người nhìn thấy những thứ như lỗi thời mà họ muốn quên đi.

Tôi làm gần như tất cả mọi thứ trong bash. TÔI ĐỌC EMAIL CỦA TÔI TỪ MỘT LINE LINE, đó là lý do tại sao tôi tránh email được đánh dấu. Tôi điều hướng thư mục, chỉnh sửa tệp, tham gia kiểm tra và phân phối mã nguồn hàng ngày, tìm kiếm tệp, tìm kiếm bên trong tệp, khởi động lại máy của tôi và thậm chí thỉnh thoảng duyệt các trang web từ dòng lệnh. bash là trái tim và linh hồn của sự tồn tại kỹ thuật số của tôi.

Vấn đề là tôi có xu hướng mở khoảng 6 cửa sổ bash. Trong công việc hôm nay, tôi có một máy chủ đang chạy một máy chủ web, một cơ sở dữ liệu khác, cơ sở dữ liệu thứ ba, thứ tư và thứ năm chỉnh sửa các tệp khác nhau, trong khi một máy thứ sáu đang cố gắng ghi lại tên của mọi tệp trên hệ thống. Tại sao? Bởi vì thật tiện lợi khi có thể tìm kiếm thông qua một kho lưu trữ như vậy nếu bạn muốn biết nơi tìm một đối tượng theo tên tệp.

Khi bạn làm điều này, bạn sẽ có rất nhiều cửa sổ trong thanh điều khiển có tên đơn giản là "bash". Điều này tốt nếu bạn chỉ có một trong số họ, nhưng thật đau đớn khi bạn có 6 hoặc nhiều hơn .... và hai chục thứ khác đang diễn ra. Tôi có ba màn hình theo lệnh đồng thời của một cặp bàn phím / chuột và tôi vẫn cảm thấy cần nhiều hơn nữa. Mỗi cửa sổ có một số thiết bị đầu cuối bash mở.

Vì vậy, tôi đã kết hợp điều này với nhau. Đầu tiên, đặt các dòng này trong .bash_profile của bạn:

  export PROMPT_COMMAND='export TRIM=`~/bin/trim.pl`'
  export PS1="\[\e]0;\$TRIM\a\]\$TRIM> "
  trap 'CMD=`history|~/bin/hist.pl`;echo -en "\e]0;$TRIM> $CMD\007"' DEBUG

Tôi đã xem qua và viết hàng chục đoạn về cách thức hoạt động của tất cả những điều này và chính xác lý do tại sao nó được thiết lập theo cách của nó, nhưng bạn không thực sự quan tâm. Tin tôi đi Có cả một chương của một cuốn sách tại sao tôi lại làm "CMD =... ; echo ..." trên dòng thứ ba đó. Nhiều người (bao gồm cả bluehost, nơi tên miền khác của tôi được lưu trữ) vẫn đang sử dụng và phiên bản bash cũ với các lỗi lớn trong cách xử lý bẫy, vì vậy chúng tôi bị mắc kẹt với điều này. Bạn có thể xóa CMD và thay thế nó bằng $ BASH_COMMAND nếu bạn có mặt trên phiên bản bash của bạn và cảm thấy muốn thực hiện nghiên cứu.

Dù sao, kịch bản đầu tiên tôi sử dụng là ở đây. Nó tạo ra một dấu nhắc đẹp có chứa tên máy và thư mục của bạn, được cắt nhỏ theo chiều dài hợp lý:

                       ============trim.pl===========
  #!/usr/bin/perl

  #It seems that my cygwin box doesn't have HOSTNAME available in the 
  #environment - at least not to scripts - so I'm getting it elsewhere.
  open (IN, "/usr/bin/hostname|");
  $hostname = <IN>;
  close (IN);
  $hostname =~ /^([A-Za-z0-9-]*)/;
  $host_short = $1;

  $preamble = "..." if (length($ENV{"PWD"})>37);

  $ENV{"PWD"} =~ /(.{1,37}$)/;
  $path_short = $1;

  print "$host_short: $preamble$path_short";

                        ==============================

Có một cảnh báo ở đầu bài đăng blog này mà bạn nên đọc ngay trước khi bắt đầu hỏi những câu ngu ngốc như "Tại sao bạn không sử dụng biến môi trường HOSTNAME thông qua @ENV?" Đơn giản: Bởi vì nó không hoạt động cho tất cả các hệ thống tôi đã thử.

Bây giờ cho bit thực sự mát mẻ. Ghi nhớ dòng 3 của phần bổ sung .bash_profile?

  trap 'CMD=`history|~/bin/hist.pl`;echo -en "\e]0;$TRIM> $CMD\007"' DEBUG

Nó đang bỏ đầu ra tập lệnh trim.pl trong cùng một thùng chứa như trước đây, in ra cả dấu nhắc lệnh và tiêu đề cửa sổ, nhưng lần này là thêm lệnh mà bạn vừa gõ! Đây là lý do tại sao bạn không muốn thực hiện tất cả những điều này trong .bashrc: bất kỳ tập lệnh nào bạn chạy (trên máy của tôi, người đàn ông là một trong số họ) sẽ kích hoạt điều này trên mỗi dòng. đầu ra của con người bị cắt xén nghiêm trọng bởi những gì chúng ta đang làm ở đây. Chúng tôi không chính xác chơi tốt với thiết bị đầu cuối.

Để lấy lệnh bạn vừa gõ, chúng tôi lấy lịch sử của bash và đưa nó lên một chút:

                        ===========hist.pl============
#!/usr/bin/perl

while (<STDIN>)
{
        $line = $_
}

chomp $line;
$line =~ /^.{27}(.*)/;
print $1;
                        ==============================

Vì vậy, bây giờ, tôi có một cửa sổ lớn và họ nói những điều như:

  castro: /home/ronb blog
  Ron-D630: /C/ronb/rails/depot script/server
  Ron-D630: /C/ronb/rails/depot mysql -u ron -p
  Ron-D630: /C/ronb/rails/depot find . > /C/ronb/system.map
  Ron-D630: /C/ronb/rails/depot vi app/views/cart.html.erb
  Ron-D630: /C/perforce/depot/ p4 protect
  Ron-D630: /C/perforce/depot/ p4 sync -f
  Ron-D630: /C/perforce/depot/

Từ thanh nhỏ hạnh phúc ở dưới cùng của màn hình, bây giờ tôi có thể biết đó là cái gì trong nháy mắt. Và bởi vì chúng ta đã thiết lập PS1, ngay sau khi một lệnh kết thúc thực thi, tên lệnh được thay thế bằng đầu ra của trim.pl một lần nữa.

CẬP NHẬT (cùng ngày): Nội dung này (các mục .bash_profile) đã tạo ra tất cả các loại địa ngục đối với tôi khi tôi thử nó trong .bashrc của tôi. .Bashrc của bạn được thực thi bởi các tập lệnh không tương tác bất cứ khi nào bạn gọi bash làm ngôn ngữ. Tôi đánh nó khi tôi đang cố gắng sử dụng người đàn ông. Tất cả các loại rác (văn bản đầy đủ của .bashrc của tôi, cộng với các nhà từ thiện thoát hiểm) xuất hiện ở đầu trang của người đàn ông. Tôi sẽ đề nghị thử nghiệm viên ngọc này bằng một lời mời 'man man' nhanh chóng trong dòng lệnh một khi bạn kết hợp tất cả lại với nhau.

Tôi đoán đã đến lúc tôi rút rác tùy chỉnh ra khỏi .bashrc của mình và đặt nó ở nơi ...

Ngẫu nhiên, tôi thấy mình gõ 'bẫy người đàn ông' tại một thời điểm trong quá trình này.


8

Ở nơi làm việc trước đây của tôi giờ làm việc là vô lý. Đó là một công ty phần mềm và ông chủ của tôi đã bị hút. Anh ấy sẽ cho chúng tôi làm việc vào khoảng 5:30 chiều (ngay khi đến giờ về nhà) và khiến chúng tôi hoàn thành công việc cho đến 11:00 tối (vượt qua giờ làm việc lý tưởng của chúng tôi). Hoặc anh ta sẽ tìm thấy các vấn đề gây phiền nhiễu trong mã vẫn đang được tiến hành.

Vì vậy, tôi đã tạo một tệp bó và một tập lệnh sẽ tắt máy tính của tôi tại một thời điểm ngẫu nhiên trong khoảng thời gian từ 7:00 đến 8:00 tối. Nó có một bộ đếm thời gian 1 phút chỉ trong trường hợp tôi sẽ ở lại sau nhiều giờ và cần phải hủy bỏ quá trình tắt máy.

Nhưng tôi sẽ rời khỏi bàn làm việc trước 5 giờ chiều để anh ấy không thể tìm thấy tôi để giữ tôi nếu anh ấy muốn đổ rác vào thời gian kiểm tra. Nếu anh ta đến bàn của tôi và thấy máy tính của tôi trên, anh ta sẽ nghĩ rằng tôi vẫn ở quanh khu vực phòng đựng thức ăn hoặc ở cửa hàng nhỏ gần đó để lấy một số chip hoặc thứ gì đó. Nhưng nếu đó là khoảng thời gian đó, anh ấy sẽ gọi điện thoại di động cho tôi và bảo tôi quay lại văn phòng.

Tôi cũng đã lên lịch cho BIOS trên máy của mình để bật máy vào khoảng 8:00 sáng hoặc 9:00 sáng trong trường hợp tôi cảm thấy lười biếng và muốn đi dạo trong khoảng 10:00 AM hoặc 11:00 AM. Nếu tôi bị bắt gặp đang đi bộ đến bàn của mình, anh ta sẽ hỏi "bạn đã ở đâu cả buổi sáng?" Và tôi sẽ nói "Tôi đã ở một cuộc họp với nhóm tiếp thị." hoặc "Tôi đã ra ngoài ăn sáng."

chó câm


7

Tôi đã từng làm việc tại một trại hè công nghệ, và chúng tôi phải soạn những bài viết này cho mỗi đứa trẻ trong nhóm vào cuối tuần, sau đó chúng sẽ nhận và mang về nhà như một vật kỷ niệm. Thông thường, chúng bao gồm một loạt các câu chung chung, và một đến hai câu cá nhân hóa. Tôi đã viết một kịch bản python xây dựng một trong những cách viết này từ ngân hàng các câu đóng hộp và cho phép người dùng thêm một vài câu được cá nhân hóa vào giữa. Điều này đã tiết kiệm một lượng lớn thời gian cho tôi và các cố vấn khác mà tôi cho vào bí mật. Mặc dù rất nhiều trong số đó đã được tự động hóa, các bài viết của chúng tôi vẫn trông tốt hơn nhiều bài 'trung thực', bởi vì chúng tôi có thể dành nhiều thời gian hơn cho các phần được cá nhân hóa.


6
#! /bin/bash
# check to see if site is up
#   if it is, don't worry
#   if it's down, restart apache after get a process listing
#
# v.1 Warren M Myers - initial stab
#     31 Aug 06
#

ERRCOD='7'
WHEN=`date +%d%b%y`
REPT="~/psaux.$WHEN.txt"
STARS='********************'

curl -I http://www.shodor.org > /var/tmp/curlret.txt

if [ "$?" = "$ERRCOD" ]; then
    # return was unable to connect to host: save ps -aux; mail report
    ps -aux > $REPT
    echo $STARS
    echo 'curl return results'
    echo
    cat curlret.txt
    echo
    echo $STARS
    echo 'ps -aux results'
    cat $REPT
    echo
    echo $STARS
    echo 'restarting apache'
    /etc/init.d/apache2 restart
    echo 'apache restarted'
    echo
    echo "ps -aux results saved in $REPT"
fi

rm -f /var/tmp/curlret.txt

6

Tập lệnh Greasemonkey để thêm hộp điều khiển "nhấn nút đó thật nhiều" vào trò chơi trực tuyến.


6

Một tập lệnh nhỏ theo dõi một số trang web phổ biến cho quảng cáo phù hợp với kỹ năng của tôi và gửi email cho tôi qua email.


6

Tôi sử dụng điều này như là một chức năng tự động tải. Tôi chỉ có thể gõ "mycd" và một danh sách các thư mục xuất hiện mà tôi thường xuyên cd. Nếu tôi tình cờ biết thì số tôi chỉ có thể nói một cái gì đó như "mycd 2". Để thêm một thư mục vào danh sách, bạn chỉ cần gõ "mycd / tmp / foo / somedirectory".

function mycd {

MYCD=/tmp/mycd.txt
touch ${MYCD}

typeset -i x
typeset -i ITEM_NO
typeset -i i
x=0

if [[ -n "${1}" ]]; then
   if [[ -d "${1}" ]]; then
      print "${1}" >> ${MYCD}
      sort -u ${MYCD} > ${MYCD}.tmp
      mv ${MYCD}.tmp ${MYCD}
      FOLDER=${1}
   else
      i=${1}
      FOLDER=$(sed -n "${i}p" ${MYCD})
   fi
fi

if [[ -z "${1}" ]]; then
   print ""
   cat ${MYCD} | while read f; do
      x=$(expr ${x} + 1)
      print "${x}. ${f}"
   done
   print "\nSelect #"
   read ITEM_NO
   FOLDER=$(sed -n "${ITEM_NO}p" ${MYCD})
fi

if [[ -d "${FOLDER}" ]]; then
   cd ${FOLDER}
fi

}

Khi tôi chạy "mycd", tôi nhận được: "-bash: print: lệnh không tìm thấy". Khi tôi sử dụng "mycd / thư mục /", nó không thêm bất cứ thứ gì vào /tmp/mycd.txt. Tôi có một số cài đặt sai?
Léo Léopold Hertz 준영

À, vâng, bạn có thể muốn thay thế các câu lệnh 'in' bằng 'echo'. ;-)
wzzrd

@wzzrd Thật nhục nhã;) Chức năng rất tuyệt, @Ethan Post. Cảm ơn bạn đã chia sẻ!
Léo Léopold Hertz

5

Tôi thích lưu trữ ảnh của mình trong một thư mục dựa trên ngày ảnh được chụp. Do đó, tôi đã viết một chương trình quét thẻ nhớ để tìm ảnh, tạo bất kỳ thư mục nào trên đĩa cứng của tôi mà nó cần dựa trên ngày tháng của ảnh, sau đó sao chép chúng vào.


Muốn thêm đoạn script vào đây? Tôi rất thích chức năng này, tôi làm điều tương tự!
Pharaun

Đó là ứng dụng ac #, không phải là kịch bản mà tôi sợ.
Valerion

Bạn có sử dụng thông tin exif được lưu trong ảnh không? Bạn có thể vui lòng chia sẻ kịch bản?
JJD

5

Đã viết một tập lệnh để nhấp vào nút bắt đầu của tôi, sau đó nhấp lại vào tập lệnh sau nửa giây và lặp lại sau mỗi 30 giây.

Giữ cho tôi được đánh dấu trực tuyến trong khi làm việc và tôi có thể hoàn thành công việc thực sự trên máy tính xách tay cá nhân của mình ngay bên cạnh. Không bị sa lầy bởi phần mềm làm việc.

Đừng nói với sếp :)


Ha ha ha, thứ tốt. +1 cho cả sự trung thực và không trung thực! :)
Kyle Walsh

4

Các phím tắt khác nhau cho các lệnh "net start" và "net stop" để tôi có thể bắt đầu và dừng các dịch vụ mà không cần phải đi vào Dịch vụ MMC


4

Một tập lệnh shell để thực hiện sao lưu xoay bằng rsync. Nó cũng hỗ trợ thực hiện các chương trình con tùy ý để hỗ trợ các hoạt động dự phòng trước khác (ví dụ như tải xuống các dấu trang ngon).

http://gist.github.com/6806


4

Một ứng dụng nhỏ nhấp chuột trái (hoặc nhấp đúp) vào mỗi "X" ms trong khoảng thời gian "Y". Không cần cho con chim uống đó làm việc tại nhà máy điện hạt nhân! ;)

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.