WindowsでPython2.6のインタラクティブモードでタブ補完をしたい場合に使うバッチ

以下を「c:\Windows\System32\」へ「py.bat」として入れておけば便利。

前提としてPythonへのパスが通っていて、pyreadlineをここからダウンロードしてインストールしてあること。

あと、バッチの中で既存のPYTHONSTARTUPを置き換えてからpythonを呼び出している点も注意。

@echo off

rem ************************************************************************
rem Following code is from http://d.hatena.ne.jp/ymaru/20071123/p1
set date_tmp=%date:/=%
set time_tmp=%time: =0%
set yyyy=%date_tmp:~0,4%
set yy=%date_tmp:~2,2%
set mm=%date_tmp:~4,2%
set dd=%date_tmp:~6,2%
set hh=%time_tmp:~0,2%
set mi=%time_tmp:~3,2%
set ss=%time_tmp:~6,2%
set sss=%time_tmp:~9,2%
set datetime=%yyyy%%mm%%dd%%hh%%mi%%ss%%sss%
set time_tmp=
set date_tmp=
rem ************************************************************************

echo ########################################################################
echo #  "[Tab] complete" needs pyreadline, because Windows doesn't include  #
echo #  GNU readline module. If you ware not install it, here you are.      #
echo #                                                                      #
echo #  https://launchpad.net/pyreadline/+download                          #
echo #             ^<pyreadline provides a readline replacement for windows.^>#
echo ########################################################################
echo.

set ALT_PYTHONSTARTUP=%PYTHONSTARTUP%
set PYTHONSTARTUP=%TMP%\tab_%datetime%.py

echo import rlcompleter >> %PYTHONSTARTUP%
echo rlcompleter.readline.parse_and_bind('tab: complete') >> %PYTHONSTARTUP%

python

del %PYTHONSTARTUP%
set PYTHONSTARTUP=%ALT_PYTHONSTARTUP%
set ALT_PYTHONSTARTUP=

@echo on

「[winkey]+r」⇒「py」⇒「[enter]」で起動してくるので楽チンです。

※バッチの日付処理の部分に『つれづれ日記 DOSバッチで日付・時刻の取得』を使用させていただきました。ありがとうございます。