Jestli se jako já chystáte pustit přes svátky nějakou dávku a bojíte se výpadků proudu nebo náhodných pádů počítače, nabízím jednoduchou utilitku. Program pouští dávku a zapisuje si řádku, na které skončil. Po násilném ukončení a znovuspuštění program skočí na poslední řádku. Program si také uchovává vlastnosti dávky ve Windows, tzn. můžete za aktuální řádku připsat další řádky a oni se provedou i když program už běží. (Trochu vepřové, ale nadmíru užitečné.) Připomínky, vylepšení a stížnosti pochopitelně vítám.
Tu je skript v pythonu "batcher.py":
import sys
import os
def writeState(fname, state):
f = open(fname, "w")
f.write("%d\n" % state)
f.close()
if not len(sys.argv) == 3:
print
print "Error: Batcher needs two arguments."
print
else:
fnameBatch = sys.argv[1]
fnameState = sys.argv[2]
while True:
try:
fState = open(fnameState)
line = fState.readline()
state = int(line.strip())
fState.close()
except IOError:
state = 0
writeState(fnameState, state)
fBatch = open(fnameBatch)
iLine = 0
for line in fBatch:
if iLine == state:
break
iLine = iLine + 1
if not state == iLine:
break
if not os.system(line.strip()) == 0:
print
print "Warning: An error has occurred at line no. %d." % (state + 1)
print
state = state + 1
writeState(fnameState, state)
Skript má dva parametry: jméno souboru s dávkou a jméno souboru s číslem aktuální řádky. Pokud druhý soubor neexistuje, jede se od první (nulté) řádky.

