hirax.net::Keywords::「コンテキストメニュー」のブログ



2008-12-26[n年前へ]

任意ファイル(場所)からコマンドプロンプトを出してみよう 

 スクリプトを使ってデータ処理等をする場合、「任意のフォルダからコマンドプロンプトを開いて」処理作業をすることが多いものです。「任意のフォルダからコマンドプロンプトを開く」のはWindows レジストリにキーを一個追加すれば良いだけですから、この「任意のフォルダを起点としたコマンドプロンプト」を使っている人も少なからずいることでしょう。

 ところで、そんな人たちの何割かは、「任意のフォルダを右クリックしてコマンドプロンプトを出すのではなく、任意のファイルを右クリックして、そのファイルがいるフォルダを起点としたコマンドプロンプトを出したい」と思うことがあるのではないでしょうか。フォルダウィンドーを開いて作業しているときに、そのフォルダでスクリプト処理などをしたくなってコマンドプロンプトを開きたくなっても、(左にツリービューが表示されたエクスプローラでないと)1階層だけ上に戻らないと、コマンドプロンプトを開くコンテキストメニューを表示させることができないからです。

 そこで、任意のファイルを右クリックすることで、そのファイルがいるディレクトリを起点とするコマンドプロンプトを出すスクリプトを作ってみました。

 作ったといっても、RubyやPerlといったスクリプト言語をインストールしている人であれば(Windowsデフォルトの機能だけでもできそうですが)、90秒もあればスクリプト書きも設定作業もすべて終わるほどの簡単なものです。どのようなものかというと、送る("SendTo")メニューに「コマンドプロンプトを立ち上げ、送りつけられたファイルがあるディレクトリに移動する」という処理をするスクリプト(バッチファイル)へのショートカットを入れておくわけです。

Ruby で書くなら

system 'cmd.exe /k "cd '+ARGV[0].sub(/\\[^\\]*?$/,'')+'"' 
という具合のスクリプトを書き、(たとえば)cmdfromanywhere.rbといった名前で保存した上で、
ruby cmdfromanywhere.rb %1
という内容のバッチファイルを作り、そのバッチファイルへのショートカットを"送る"="SendTo"ディレクトリ(Windows Vistaの場合には、"送る"="SendTo"ディレクトリは " C:\Users\ユーザ名\AppData\Roaming\Microsoft\Windows\SendTo"になります。また、それ以外だと"C:\Documents and Settings\ユーザ名\SendTo"辺りです)に置いて、バッチファイルへのショートカットを”コマンドプロンプト”という名前にでもしておけば良いのです。

 これで任意のファイルを右クリックし、コンテキストメニューから”コマンドプロンプト”に「送る」と、そのフォルダを起点としたコマンドプロンプトが立ち上がるようになります。

コマンドプロンプトスクリプトコマンドプロンプトスクリプト








■Powered by yagm.net