# name: py2bat.py # version: 0.1(alpha), Jan/04/2000 # # description: generate .bat files from python files # usage: py2bat [-h|-?] # or: py2bat [files] # # at first, create .bat file for py2bat.py: # python py2bat.py py2bat.py # # warning: dont use extension (.bat) for executing files generated # by py2bat. # # author: Christian Schaller (Christian.Schaller at mchp.siemens.de), # inspired by pl2bat import sys import os.path import getopt _part1 = '''@echo off rem=""" if "%OS%" == "Windows_NT" goto WinNT python -x "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 goto endofpython :WinNT python -x "%0" %* if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofpython if %errorlevel% == 9009 echo ERROR: You do not have Python in your PATH. goto endofpython rem """ # python script starts here ''' # for generating py2bat.bat pay attention to :endofpython to ensure the shell # jumping to the right label _part2 = '\n# end of python script\nrem="""\n:endofpython\nrem """\n' _usage = '''Usage: py2bat [-h|-?] or: py2bat [files] -h or -? show this help''' try: opts, fileargs = getopt.getopt(sys.argv[1:], '?h') except getopt.error, e: print e print _usage sys.exit() for switch, value in opts: if switch == '-h' or switch == '-?': print _usage sys.exit() # mark for stdin, when no filename is given if fileargs == []: fileargs = ['-'] for filearg in fileargs: # should script read from stdin? if filearg == '-': file = sys.stdin # write result to stdout out = sys.stdout else: # filename was given, so we can use that file name # for creating the .bat file file = open(filearg) root, ext = os.path.splitext(filearg) if ext == '.py': outfile = root + '.bat' else: outfile = root + ext + '.bat' print 'generating', outfile out = open(outfile, 'w') out.write(_part1) while 1: line = file.readline() if line == '': break out.write(line) file.close() out.write(_part2) out.close()