Каков самый полезный сценарий, который Вы записали для повседневной жизни? [закрытый]

Как будто вы пытаетесь получить доступ к объекту, который является null. Рассмотрим ниже пример:

TypeA objA;

. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException, что имеет смысл.

См. Также этот пример:

String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
131
задан 5 revs, 4 users 100% 3 May 2012 в 14:43
поделиться

77 ответов

Сценарий, который работает каждый час для переквалификации моих спам-фильтров, основывал две папки IMAP, куда промежуток и ветчина помещаются.

#!/bin/sh
FNDIR="train-as-spam"
FPDIR="train-as-ham"

for dir in /home/*/.maildir
do
    cd "${dir}"
    USER=`stat -c %U .`

    SRCDIR="${dir}/.${FNDIR}"
    if [ ! -d ${SRCDIR} ]; then
        echo no "${SRCDIR}" directory
    else
        cd "${SRCDIR}/cur"
        ls -tr | while read file
        do
            if grep -q "^X-DSPAM" "${file}"; then
                SOURCE="error"
            else
                SOURCE="corpus"
            fi

            dspam --user "${USER}" --class=spam --source="${SOURCE}" --deliver=innocent,spam --stdout < "${file}" > "../tmp/${file}"
            mv "../tmp/${file}" "${dir}/new/${file%%:*}" && rm "${file}"
        done
    fi

    SRCDIR="${dir}/.${FPDIR}"
    if [ ! -d ${SRCDIR} ]; then
        echo no "${SRCDIR}" directory
    else
        cd "${SRCDIR}/cur"
        ls -tr | while read file
        do
            if grep -q "^X-DSPAM" "${file}"; then
                SOURCE="error"
            else
                SOURCE="corpus"
            fi

            dspam --user "${USER}" --class=innocent --source="${SOURCE}" --deliver=innocent,spam --stdout < "${file}" > "../tmp/${file}"
            mv "../tmp/${file}" "${dir}/new/${file%%:*}" && rm "${file}"
        done
    fi

done
2
ответ дан 24 November 2019 в 00:13
поделиться

Сценарий VBS для создания YYYY/YYYY-MM/YYYY-MM-DD файловой структуры в моей фото папке и фотографиях перемещения от моей камеры до соответствующей папки.

3
ответ дан 24 November 2019 в 00:13
поделиться

Я получил сценарий, который извлекает теги id3, кодирует песни недавно в определенном формате и затем добавляет их согласно тегам к моей музыкальной библиотеке.

300 строк Python. Главным образом, потому что Ламе не может иметь дело с тегами хорошим способом.

3
ответ дан 24 November 2019 в 00:13
поделиться

Я записал простое приложение VB, которое отследило, какие игровые числа Freecell я играл и успешно завершил и всегда запускал его с другим семенем.

.... запуск от 1....

игровое число Max является 65k. Скорее печально больше чем после 5 лет я нахожусь все еще только в сотнях. Но по крайней мере я знаю, что никогда не играл ту же руку дважды!

** Постскриптум - это только приложение VB, которое я когда-либо писал. Я выполнил крик назад к C++....

3
ответ дан 24 November 2019 в 00:13
поделиться

Резервное копирование MySQL. Я сделал сценарий пакетной обработки Windows, который создаст возрастающие резервные копии баз данных MySQL, создавать новый дамп каждый день и создавать резервную копию их каждые 10 минут на удаленном сервере. Это сохранило мою задницу бесчисленные времена, особенно в бесчисленных ситуациях, где клиент будет звонить, вопя их голова от этого, запись просто "исчезла" из базы данных. Я не пошел "без проблем, давайте посмотрим то, что произошло", потому что я также записал сценарий двоичного поиска, который будет искать прошлый момент, когда запись присутствовала в базе данных. Оттуда было бы довольно легко понять, кто "украл" его и почему.
Вы не вообразили бы, насколько полезный они были, и я использовал их в течение почти 5 лет. Я не переключился бы ни на что больше просто, потому что они были примерно протестированы, и они изготовлены на заказ, означая, что они делают точно, в чем я нуждаюсь и ничто больше, но я настроил их так, что это был бы снимок для добавления дополнительной функциональности.
Так, мой "шедевр" является инкрементным резервным копированием MySQL + удаленное резервное копирование + система поиска журналов для Windows. Я также записал версию для Linux, но я потерял его где-нибудь, вероятно, потому что это были только приблизительно 15 строк + задание крона вместо приблизительно 1 200 строк Windows + две запланированных задачи.

4
ответ дан 24 November 2019 в 00:13
поделиться

У меня есть пакетный файл, который устанавливает соединение VPN и затем вводит бесконечный цикл, проверяя с помощью ping-запросов машину с другой стороны соединения каждые пять минут так, чтобы сервер VPN не отбрасывал соединение из-за неактивности, если я не генерирую трафика по тому соединению некоторое время.

1
ответ дан 24 November 2019 в 00:13
поделиться

Я часто использую макрос MS Word, который берет файл исходного кода, форматирует его в двух столбцах моноширинного типа на альбомной странице, нумерует строки и добавляет заголовок компании и информацию о нижнем колонтитуле, такую как имя файла, дата печати, номер страницы и оператор конфиденциальности.

Печать обеих сторон страницы использует о 1/4 бумагу как эквивалент lpr команда. (Кто-либо использует lpr еще???)

1
ответ дан 24 November 2019 в 00:13
поделиться

Лучший реальный сценарий?

Я: (Вводит комнату) "Босс, я хочу повышение".

Босс: (Стул предложений из-за стола) "Повышение? Устройтесь на мою работу!"

С другой стороны, который может быть хуже сценарий!

1
ответ дан 24 November 2019 в 00:13
поделиться
alias snoot='find . ! -path "*/.svn*" -print0 | xargs -0 egrep '
1
ответ дан 24 November 2019 в 00:13
поделиться

Аниме контрольная сумма CRC32:

#!/usr/bin/python                                                                                                                                                                                  

import sys, re, zlib

c_null="^[[00;00m"
c_red="^[[31;01m"
c_green="^[[32;01m"

def crc_checksum(filename):
    filedata = open(filename, "rb").read()
    sum = zlib.crc32(filedata)
    if sum < 0:
        sum &= 16**8-1
    return "%.8X" %(sum)

for file in sys.argv[1:]:
    sum = crc_checksum(file)
    try:
        dest_sum = re.split('[\[\]]', file)[-2]
        if sum == dest_sum:
            c_in = c_green
        else:
            c_in = c_red
        sfile = file.split(dest_sum)
        print "%s%s%s   %s%s%s%s%s" % (c_in, sum, c_null, sfile[0], c_in, dest_sum, c_null, sfile[1])
    except IndexError:
        print "%s   %s" %(sum, file)
1
ответ дан 24 November 2019 в 00:13
поделиться

Сценарий Python, который делает filewalk и печатает мое дерево каталогов, отсортированное по использованию диска.

1
ответ дан 24 November 2019 в 00:13
поделиться

Я записал маленький сценарий оболочки, tapt, поскольку Debian основывал систему. особенно Ubuntu. То, что это в основном делает, должно отправить всю Вашу "Кв. - получают" операции к Вашему аккаунту в Твиттере. Это помогает мне отслеживать то, что и когда я установил/удалил программы в своей системе Ubuntu. Я создал новый аккаунт в Твиттере только для этого и сохранил его частным. Действительно полезный. Больше информации здесь: http://www.quicktweaks.com/tapt/

1
ответ дан 24 November 2019 в 00:13
поделиться

Хорошо назад в 2005 я использовал хинду Linux, и я использовал много небольшая программа, названная genlop, чтобы показать мне историю того, что я появился (установленный) на моем хинду поле. Хорошо для упрощения моей работы я записал не маленький сценарий Python, а большой, но в то время я только что начал использовать Python:

    #!/usr/bin/python
##############################################
# Gentoo emerge status              #   
# This script requires genlop,           #   
# you can install it using `emerge genlop`.  #
# Milot Shala <milot@mymyah.com>        #
##############################################

import sys
import os
import time

#colors
color={}
color["r"]="\x1b[31;01m"
color["g"]="\x1b[32;01m"
color["b"]="\x1b[34;01m"
color["0"]="\x1b[0m"


def r(txt):
   return color["r"]+txt+color["0"]
def g(txt):
   return color["g"]+txt+color["0"]
def b(txt):
   return color["b"]+txt+color["0"]

# View Options
def view_opt():   

   print
   print
   print g("full-info - View full information for emerged package")
   print g("cur - View current emerge")
   print g("hist - View history of emerged packages by day")
   print g("hist-all - View full list of history of emerged packages")
   print g("rsync - View rsync history")
   print g("time - View time for compiling a package")
   print g("time-unmerged - View time of unmerged packages")
   print
   command = raw_input(r("Press Enter to return to main "))
   if command == '':
      c()
      program()
   else:
      c()
      program()

# system command 'clear'
def c():
   os.system('clear')


# Base program
def program():
   c()
   print g("Gentoo emerge status script")
   print ("---------------------------")
   print

   print ("1]") + g(" Enter options")
   print ("2]") + g(" View options")
   print ("3]") + g(" Exit")
   print
   command = input("[]> ")


   if command == 1:   
      print
      print r("""First of all  you must view options to know what to use, you can enter option name ( if you know any ) or type `view-opt` to view options.""")
      print
      time.sleep(2)
      command = raw_input(b("Option name: "))
      if (command == 'view-opt' or command == 'VIEW-OPT'):
         view_opt()


      elif command == 'full-info':
         c()
         print g("Full information for a single package")
         print ("-------------------------------------")
         print
         print b("Enter package name")
         command=raw_input("> ")
         c()
         print g("Full information for package"), b(command)
         print ("-----------------------------------")
         print
         pack=['genlop -i '+command]
         pack_=" ".join(pack)
         os.system(pack_)
         print
         print r("Press Enter to return to main.")
         command=raw_input()
         if command == '':
            c()
            program()

         else:
            c()
            program()


      elif command == 'cur':
         if command == 'cur':
            c()
            print g("Current emerge session(s)")
            print ("-------------------------")
            print
            print b("Listing current emerge session(s)")
            print
            time.sleep(1)
            os.system('genlop -c')
            print
            print r("Press Enter to return to main.")
            command = raw_input()
            if (command == ''):
               c()
               program()

            else:
               c()
               program()


      elif command == 'hist':
         if command == 'hist':
            c()
            print g("History of merged packages")
            print ("---------------------------")
            print
            time.sleep(1)
            print b("Enter number of how many days ago you want to see the packages")
            command = raw_input("> ")
            c()
            print g("Packages merged "+b(command)+ g(" day(s) before"))
            print ("------------------------------------")
            pkg=['genlop --list --date '+command+' days ago']
            pkg_=" ".join(pkg)
            os.system(pkg_)
            print
            print r("Press Enter to return to main.")
            command = raw_input()
            if command == '':
               c()
               program()

            else:
               c()
               program()


      elif command == 'hist-all':
            c()
            print g("Full history of merged individual packages")
            print ("--------------------------------------")
            print
            print b("Do you want to view individual package?")
            print r("YES/NO?")
            command = raw_input("> ")
            print
            if (command == 'yes' or command == 'YES'):
               print g("Enter package name")
               command = raw_input("> ")
               print
               pkg=['genlop -l | grep '+command+ ' | less']
               pkg_=" ".join(pkg)
               os.system(pkg_)
               print
               print r("Press Enter to return to main")
               command = raw_input()
               if command == '':
                  c()
                  program()
               else:
                  c()
                  program()

            elif (command == 'no' or command == 'NO'):
               pkg=['genlop -l | less']
               pkg_=" ".join(pkg)
               os.system(pkg_)
               print
               print r("Press Enter to return to main")
               command = raw_input()
               if command == '':
                  c()
                  program()

               else:
                  c()
                  program()

            else:
               c()
               program()


      elif command == 'rsync':
         print g("RSYNC updates")
         print
         print
         print
         print b("You can view rsynced time by year!")
         print r("Do you want this script to do it for you? (yes/no)")
         command = raw_input("> ")
         if (command == 'yes' or command == 'YES'):
            print
            print g("Enter year i.e"), b("2005")
            print
            command = raw_input("> ")
            rsync=['genlop -r | grep '+command+' | less']
            rsync_=" ".join(rsync)
            os.system(rsync_)
            print
            print r("Press Enter to return to main.")
            c()
            program()
         elif (command == 'no' or command == 'NO'):
            os.system('genlop -r | less')
            print
            print r("Press Enter to return to main.")
            command = raw_input()
            if command == '':
               c()
               program()

            else:
               c()
               program()

      elif command == 'time':
         c()
         print g("Time of package compilation")
         print ("---------------------------")
         print
         print

         print b("Enter package name")
         pkg_name = raw_input("> ")
         pkg=['emerge '+pkg_name+' -p | genlop -p | less']
         pkg_=" ".join(pkg)
         os.system(pkg_)
         print
         print r("Press Enter to return to main")
         time.sleep(2)
         command = raw_input()
         if command == '':
            c()
            program()

         else:
            c()
            program()


      elif command == 'time-unmerged':
         c()
         print g("Show when package(s) is/when is unmerged")
         print ("----------------------------------------")
         print

         print b("Enter package name: ")
         name = raw_input("> ")
         pkg=['genlop -u '+name]
         pkg_=" ".join(pkg)
         os.system(pkg_)
         print
         print r("Press Enter to return to main")
         time.sleep(2)
         command = raw_input()
         if command == '':
            c()
            program()

         else:
            c()
            program()

      else:
         print
         print r("Wrong Selection!")
         time.sleep(2)
         c()
         program()


   elif command == 2:
      view_opt()
      command = raw_input(r("Press Enter to return to main "))
      if command == '':
         c()
         program()
      else:
         c()
         program()


   elif command == 3:
      print
      print b("Thank you for using this script")
      print
      time.sleep(1)
      sys.exit()

   else:
      print
      print r("Wrong Selection!")
      time.sleep(2)
      c()
      program()
      command = ("")


program()
1
ответ дан 24 November 2019 в 00:13
поделиться

Как запланированная задача, для копирования любых измененных/новых файлов со всего диска d: к резервному диску g: и зарегистрировать скопированные файлы. Это помогает мне отслеживать то, что я сделал когда, также.

justdate является небольшой программой к печати дата и время на экран

g:

cd \drive_d

d:

CD \

тип g:\backup_d.log>> g:\logs\backup_d.log

эхо ==========================================> g:\backup_d.log

d:\mu\bmutil\justdate>> g:\backup_d.log

/s/d/y/c xcopy. g:\drive_d>> g:\backup_d.log

1
ответ дан 24 November 2019 в 00:13
поделиться

Я использую DOS-программу, что ошибки, если она проходит определенную дату. Я просто посмотрел на пакетный файл, который это использовало для запуска и изменило его так, это сначала изменит дату на 2000, затем запустит программу. На выходе программы это изменило дату назад назад на то, чем это было, прежде чем это было изменено.

1
ответ дан 24 November 2019 в 00:13
поделиться
#!/usr/bin/perl
use strict;
use utf8;
use Encode;
use File::Find;
binmode STDOUT, ':utf8';
sub orderly {
    my ($x, $y) = @_{$a, $b};
    if (my $z = $x <=> $y) {return $z}
    $x = length $a;
    $y = length $b;
    my $z = $x < $y ? $x : $y;
    if (substr($a, 0, $z) eq substr($b, 0, $z)) {
        return $y <=> $x;
    }
    else {
        return $a cmp $b;
    }
}
my %conf = map +($_ => 0), split //, 'acsxL';
sub Stat {$conf{L} ? lstat : stat}
my @dirs = ();
while (defined ($_ = shift)) {
    if ($_ eq "--") {push @dirs, @ARGV; last}
    elsif (/^-(.*)$/s) {
        for (split //, $1) {
            if (!exists $conf{$_} or $conf{$_} = 1 and $conf{a} and $conf{s}) {
                print STDERR "$0 [-a] [-c] [-s] [-x] [-L] [--] ...\n";
                exit 1;
            }
        }
    }
    else {push @dirs, $_}
}
s/\/*$//s for @dirs;  # */ SO has crappy syntax highlighting
@dirs = qw(.) unless @dirs;
my %spec = (follow => $conf{L}, no_chdir => 1);
if ($conf{a}) {
    $spec{wanted} = sub {
        Stat;
        my $s = -f _ ? -s _ : 0;
        decode(utf8 => $File::Find::name) =~ /^\Q$dirs[0]\E\/?(.*)$/s;
        my @a = split /\//, $1;
        for (unshift @a, $dirs[0]; @a; pop @a) {
            $_{join "/", @a} += $s;
        }
    };
}
elsif ($conf{s}) {
    $spec{wanted} = sub {
        Stat;
        $_{$dirs[0]} += -f _ ? -s _ : 0;
    };
}
else {
    $spec{wanted} = sub {
        Stat;
        my $s = -f _ ? -s _ : 0;
        decode(utf8 => $File::Find::name) =~ /^\Q$dirs[0]\E\/?(.*)$/s;
        my @a = split /\//, $1;
        ! -d _ and pop @a;
        for (unshift @a, $dirs[0]; @a; pop @a) {
            $_{join "/", @a} += $s;
        }
    };
}
if ($conf{x}) {
    $spec{preprocess} = sub {
        my $dev = (Stat $File::Find::dir)[0];
        grep {$dev == (Stat "$File::Find::dir/$_")[0]} @_;
    };
}
while (@dirs) {
    find(\%spec, $dirs[0] eq "" ? "/" : $dirs[0]);
    $_{""} += $_{$dirs[0]} if $conf{c};
    shift @dirs;
}
$_{$_} < 1024 ** 1 ? printf "%s «%-6.6sB» %s\n", $_{$_}, sprintf("%6.6f", "$_{$_}" / 1024 ** 0), $_ :
$_{$_} < 1024 ** 2 ? printf "%s «%-6.6sK» %s\n", $_{$_}, sprintf("%6.6f", "$_{$_}" / 1024 ** 1), $_ :
$_{$_} < 1024 ** 3 ? printf "%s «%-6.6sM» %s\n", $_{$_}, sprintf("%6.6f", "$_{$_}" / 1024 ** 2), $_ :
$_{$_} < 1024 ** 4 ? printf "%s «%-6.6sG» %s\n", $_{$_}, sprintf("%6.6f", "$_{$_}" / 1024 ** 3), $_ :
$_{$_} < 1024 ** 5 ? printf "%s «%-6.6sT» %s\n", $_{$_}, sprintf("%6.6f", "$_{$_}" / 1024 ** 4), $_ :
$_{$_} < 1024 ** 6 ? printf "%s «%-6.6sP» %s\n", $_{$_}, sprintf("%6.6f", "$_{$_}" / 1024 ** 5), $_ :
$_{$_} < 1024 ** 7 ? printf "%s «%-6.6sE» %s\n", $_{$_}, sprintf("%6.6f", "$_{$_}" / 1024 ** 6), $_ :
$_{$_} < 1024 ** 8 ? printf "%s «%-6.6sZ» %s\n", $_{$_}, sprintf("%6.6f", "$_{$_}" / 1024 ** 7), $_ :
                     printf "%s «%-6.6sY» %s\n", $_{$_}, sprintf("%6.6f", "$_{$_}" / 1024 ** 8), $_
    for grep {$_{$_} > 0} sort orderly keys %_;

Я сохраняю его в ~/bin/dush, это действует как своего рода du -h/du | sort -n гибрид: виды и дают человекочитаемые размеры внезапно. Очень полезный для нахождения, что поднимает дисковое пространство.

В том же духе,

#!/usr/bin/perl
$t = 1;
%p = map {$_ => ($t *= 1024)} qw(K M G T P E Z Y);
$t = 4707319808;
if (@ARGV) {
    if (($_ = shift) =~ /^-*dvd/i) {$t = 4707319808}
    elsif (/^-*cd[^w]*$/i) {$t = 737280000}
    elsif (/^-*cd/i) {$t = 681984000}
    elsif (/^-*([\d.]+)([kmgtpezy])/i) {$t = $1 * ($p{"\U$2"} || 1)}
    elsif (/^-*([\d.]+)/) {$t = $1}
    else {unshift @ARGV, $_}
}
($q, $r, $s) = (0, ($ENV{COLUMNS} || 80) - 13, $t);
while (<>) {
    chomp, stat;
    unless (-e _) {
        print STDERR "$_ does not exist\n";
        next;
    }
    if (($s += -s _) > $t) {
        $s && $s < $t && printf "-%7s %s\n",
            sprintf("%2.3f%%", 100 * ($t - $s) / $t), $t - $s;
        printf "-----------%d%*s\n", ++$q, $r, "-" x $r;
        $s = -s _;
    }
    printf "%8s %s\n",
        sprintf("%3.3f%%", $s * 100 / $t),
        /.{4}(.{$r})$/s ? "...$1" : $_;
}
$s && $s < $t && printf "-%7s %s\n",
    sprintf("%2.3f%%", 100 * ($t - $s) / $t), $t - $s;

Я сохраняю это как ~/bin/fit. Когда я архивирую набор файлов, я работаю ls | fit или ls | fit -cdrw помочь определить, будет ли это соответствовать на DVD/CD/CDRW, и где разделить их, если они не делают.

1
ответ дан 24 November 2019 в 00:13
поделиться

Подобный backup.sh для каждого проекта, что смолы и gzips просто источник, перемещает его в каталог снимка и маркирует его меткой времени: project-mmddyy-hhmmss. Полезный для кодирования между фиксациями.

1
ответ дан 24 November 2019 в 00:13
поделиться

Названный assignIisSite_ToAppPool.js

, Действительно полезный, когда Вы хотите удостовериться, что некоторые ресурсы правильно отображаются.

:)

SetAppPool("W3SVC/1059997624/Root", "MyAppPool");



function SetAppPool(webId, appPoolName)
{
var providerObj=GetObject("winmgmts:/root/MicrosoftIISv2");
var vdirObj=providerObj.get("IIsWebVirtualDirSetting='" + webId + "'");
vdirObj.AppPoolId=appPoolName;
vdirObj.Put_();
}
1
ответ дан 24 November 2019 в 00:13
поделиться

У меня был сценарий управления версиями, который возьмет каталог в качестве аргумента и рекурсивно скопирует все файлы в../dirname/DATE/TIME /

, Очевидно, это был дрянной способ сделать вещи, но это было удобно прежде, чем установить реальный пакет управления версиями.

1
ответ дан 24 November 2019 в 00:13
поделиться

Я записал, что некоторые строки кода для автоматической тонкой настройки всех вещей powertop предлагают, когда я отключаю свой ноутбук и отмену это, если я включаю ноутбук назад. Максимальная мощность, максимальная производительность, максимальное удобство.

2
ответ дан 24 November 2019 в 00:13
поделиться

Маленькая программа панели задач, которая извлекла каждый код ошибки, постоянный из стороннего JavaDoc, и позволила мне поиск постоянное имя данного кода ошибки. Плюс, добавьте в любых преобразованиях от ШЕСТНАДЦАТЕРИЧНОГО ЧИСЛА к десятичному числу, и т.д.

Это подходит много при работе в отладчике - Вы возвращаете код ошибки, но затем отслеживающий назад код для отправки текстовых сообщений огромная боль. Это еще более распространено при работе с программным обеспечением, которое переносит собственные методы, вызовы ОС или COM... часто времена, константы копируются прямо из ошибочного заголовочного файла без дополнительного контекста, повторных значений и никаких перечислений.

2
ответ дан 24 November 2019 в 00:13
поделиться

Я предполагаю, что это зависит от того, как Вы определяете полезный, но мой любимый небольшой сценарий является вариантом на *, отклоняют fortune программа. Посмотрите ниже, и Вы получите идею того, что она делает:

telemachus ~ $ haiku 

   January--
in other provinces,
   plums blooming.
    Issa

Это ничего действительно не сделало, но хороший хайку имеет большое значение. (Мне нравится, как colorizer решил интерпретировать стихотворение.) ( Редактирование : Если бы я действительно должен быть полезным, я сказал бы, что сценарий, который позволяет пользователю вводить американский индекс и получать текущую погоду и 0-3 дня прогноза от Google.)

2
ответ дан 24 November 2019 в 00:13
поделиться

Я записал задание крона для захвата IP-адреса моего маршрутизатора пап и ftp это к безопасному месту поэтому, когда он нуждался в помощи, я мог удаленный рабочий стол в и фиксировать его аккомпанемент

1
ответ дан 24 November 2019 в 00:13
поделиться

Просто сценарий Python, который преобразовывает окончания строки от Unix до Windows, что я всунул свой system32 каталог. Это терялось возрастам в течение нескольких месяцев, теперь, но в основном это преобразует список известных основанных на тексте типов файлов к окончаниям строки Windows, и Вы могли указать, который перечисляют файлы преобразовать, или все файлы, для подстановочного знака.

1
ответ дан 24 November 2019 в 00:13
поделиться

Rakefile в моем каталоге загрузок, содержащем задачи, которые копируют файлы от упомянутого каталога до их соответствующих архивов медиа на внешних дисках. Учитывая мою интернет-скорость и емкость хранения, мне потребовались бы часы из каждой недели, чтобы просто скопировать через и переименовать соответственно каждую часть медиа, которая загружается (полностью по закону, я мог бы добавить) hellanzb.

Другая очень полезная задача в том же файле входит и очищает IMDb для списков эпизода / дискографии всех медиа, которые я имею, и затем проверяет NewzBin на отчеты, которые заполнили бы любые дыры, которые я имею.

Объединенный, это означает, что я абсолютно ничего не должен делать, и в обмен, я просыпаюсь каждое утро с большим количеством медиа, чем я мог возможно использовать в тот день, сидя на моих внешних жестких дисках.

я упоминал, что это все совершенно честно и законно? d-:

я, вероятно, объединю это все в своего рода менеджера/плеер медиа командной строки (сдающий вещи в аренду к mplayer) и опубликую его на GitHub, когда у меня будет время.

1
ответ дан 24 November 2019 в 00:13
поделиться

Не каждое 110-дневное, но я действительно использовал сценарий XSLT для создания моих свадебных приглашений (файл Страниц для вставок к пригласить картам и файл HTML для адресных ярлыков).

2
ответ дан 24 November 2019 в 00:13
поделиться

Я записал сценарий для форматирования C исходные файлы, который автоматически форматирует код с помощью соответствующей комбинации символов табуляции и пробелов, таких, что файл будет казаться корректным независимо от того, какова установка позиции табуляции на редакторе.

Исходный код здесь .

2
ответ дан 24 November 2019 в 00:13
поделиться

Самое полезное? Но существуют так многие...

  1. d.cmd содержит: @dir / реклама / на
  2. dd.cmd содержит: @dir/a-d / на
  3. x.cmd содержит: @exit
  4. s.cmd содержит: @start.
  5. sx.cmd содержит: @start. & выход
  6. ts.cmd содержит следующее, которое позволяет мне правильно соединяться с консольной сессией другой машины по RDP независимо от того, являюсь ли я на Vista SP1 или нет.

    @echo прочь

    ver | находят "6.0.6001"

    , если ERRORLEVEL 0, если не errorlevel 1 (устанавливает TSCONS=admin), ЕЩЕ команда выдача эха TSCONS=console

    набора: mstsc / %TSCONS %/v %1

    запускают mstsc / %TSCONS %/v %1

(Извините за странное форматирование, по-видимому, у Вас не может быть больше чем одного примера кода на ответ?)

От командной строки я перейду туда, где мой файл решения VS, и затем я захочу открыть его, но я слишком ленив, чтобы ввести blah.sln и нажать Enter. Таким образом, я записал sln.cmd:

@echo off
if not exist *.sln goto csproj
for %%f in (*.sln) do start /max %%f
goto end

:csproj
for %%f in (*.csproj) do start /max %%f
goto end

:end

, Таким образом, я просто ввожу sln и нажимаю Enter, и он открывает файл решения, если таковые имеются, в текущем каталоге. Я переношу вещи как pushd и popd в pd.cmd и pop.cmd.

2
ответ дан 24 November 2019 в 00:13
поделиться

Я использую procmail для сортировки моей входящей электронной почты к различным папкам. Поскольку я испытываю затруднения при запоминании procmailrc синтаксиса, я использую m4 в качестве препроцессора. Вот то, как мой procmailrc начинается (это еще не сценарий):

divert(-1)
changequote(<<, >>)
define(mailinglistrule, 
<<:0:
* $2
Lists/$1
>>)
define(listdt, <<mailinglistrule($1,^Delivered-To:.*$2)>>)
define(listid, <<mailinglistrule($1,^List-Id:.*<$2>)>>)
divert# Generated from .procmailrc.m4 -- DO NOT EDIT

Это определяет два макросов для списков рассылки, таким образом, например, listdt (нечто, foo@example.com) расширяется до

:0:
* ^Delivered-To:.*foo@example.com
Lists/foo

подразумевать, что электронные письма с Поставленным - К заголовку, содержащему foo@example.com, должны быть помещены в папку Lists/foo. Это также располагает обработанный файл для начала с комментария, который попросил меня не отредактировать тот файл непосредственно.

Теперь, откровенно говоря, m4 пугает меня: что, если я случайно переопределяю макрос и procmail, начинает отбрасывать всю мою электронную почту или что-то как этот? Вот почему у меня есть сценарий, который я называю обновлением-procmailrc, которое показывает мне в различном формате, как мой procmailrc собирается измениться. Если изменение является всего несколькими строками и взглядами примерно как то, что я предназначил, я могу счастливо утвердить его, но если существуют огромные изменения в файле, я знаю для рассмотрения моих редактирований более тщательно.

#! /bin/sh

PROCMAILRC=.procmailrc
TMPNAM=.procmailrc.tmp.$
cd $HOME
umask 077
trap "rm -f $TMPNAM" 0

m4 < .procmailrc.m4 > $TMPNAM
diff -u $PROCMAILRC $TMPNAM

echo -n 'Is this acceptable? (y/N) '
read accept

if [ -z "$accept" ]; then
    accept=n
fi

if [ $accept = 'y' -o $accept = 'Y' ]; then
    mv -f $TMPNAM $PROCMAILRC && \
    chmod 400 $PROCMAILRC && \
    echo "Created new $PROCMAILRC"
    if [ "$?" -ne 0 ]; then
        echo "*** FAILED creating $PROCMAILRC"
    fi
else
    echo "Didn't update $PROCMAILRC"
fi

сценарий еще не предотвратил почтовых аварий, но он сделал меня менее беспокоящимся об изменении моего procmailrc.

2
ответ дан 24 November 2019 в 00:13
поделиться

Сценарий, который читает файл конфигурации в текущем dir, входит в учетную запись FTP и загружает все файлы, которые изменились с прошлого раза это было выполнено. Действительно удобный для клиентов, которые используют общий хостинг, и FTP является моей единственной опцией для доступа к файлу.

http://lucasoman.com/code/updater

2
ответ дан 24 November 2019 в 00:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: