« Tomcatハック日記 |Main| Tomcatハック日記2 JSPの章 »

« Tomcatハック日記 | zakki(雑記) | Tomcatハック日記2 JSPの章 »

タスクバーで目的のショートカットを選ぶまでの時間を短縮

ショートカットをツリー状に編成することで、 頭の決まり字を打つだけでショートカットが選べるようになります。

screen.png

あらかじめ、適当なフォルダにショートカットを集めておきます。 この時に日本語名のショートカットは適当なアルファベットの名前にしておくといいでしょう。

次に下のスクリプトを実行します。 Pythonをインストールしていない人はインストールしてください。 またinDirとoutDirの所を自分の環境に合わせて書き換えます。 inDirがショートカットを集めたフォルダ、 outDirがショートカットをツリー状に出力するフォルダです。

実行すると、上の図のようにショートカットが編成されます。 inDirの中身はそのまま残るので、 更新したいときはinDirにショートカットを入れてスクリプトを実行するだけ。 inDirへのショートカットと、スクリプトへのショートカットを、 inDirに入れておくといいでしょう。

outDirが「,」(カンマ)というファイル名なのには理由があります。 筆者のマシンはThinkpadなのでWindowsキーがありません。 しかし右AltをWindowsキーに変えることができます。 カンマは右Altの左上にあるので、ホームポジションJに人差し指をおいたまま 少し右手を回転させると薬指がWinキー、中指がカンマになります。

# -*- coding: cp932 -*-
"""
shortcutTree.py ショートカットをツリー状に編成する
"""
#
# setting

inDir = r"C:\Home\shortcut"
outDir = r"C:\Documents and Settings\All Users\スタート メニュー\,"

# end setting
#

import os, shutil
join = os.path.join

if os.path.isdir(outDir):
    # すでに存在したら消す
    shutil.rmtree(outDir)

os.mkdir(outDir)

def makeTree(nameList):
    result = {}
    for (name, origName) in nameList:
        c = name[0].lower()
        cdr = name[1:]
        if result.has_key(c):
            result[c].append((cdr, origName))
        else:
            result[c] = [(cdr, origName)]

    return result

def arrange(nameList, outDir):
    tree = makeTree(nameList)
    for c in tree:
        if len(tree[c]) == 1:
            (name, origName) = tree[c][0]
            name = c + name
            shutil.copy(
                join(inDir, origName),
                join(outDir, name))
        else:
            os.mkdir(join(outDir, c))
            arrange(tree[c], join(outDir, c))

arrange([(f, f) for f in os.listdir(inDir)], outDir)
print "ok."

トラックバック(Trackback)

Trackback URL: http://www.nishiohirokazu.org/mt/mt-tb.cgi/529

ご意見・ご感想をお送りください(フィードバック)

(フィードバックはメールで送信され、基本的に表示されませんが、内容によっては公開させていただくこともございます。ご了承ください。Your comment doesn't appear the page immediately. If the comment has value to other people, it will be put on the page or subsequent entries. Thank you.)

上の情報は、いずれも未記入でかまいません。 All of above questions are optional.