Home JavaScript Greasemonkey PHP

「ファイル名を指定して実行」超活用法2009-06-01


Windows OS を使用しているのであれば、是非活用したい機能に「ファイル名を指定して実行」があります。
デフォルトの状態でもなかなか便利に使う事が出来るのですが、ここを拡張する事でもう手放せないツールになります。

まず基本として、ファイル名を指定して実行 まとめ で紹介されているものを押さえましょう。
システムでパスが通ってるショートカットや実行ファイルの他、*.msc や *.cpl などを直接起動できるので覚えておくと便利なものが多いです。

そしてこれ以降、前述の記事では触れられていない強力な活用法について色々と紹介します。

ショートカットについて

まず、これ以下の機能を全面的に活用するのであれば、「ファイル名を指定して実行」をマウスで選択するのは野暮というものです。
win+R というショートカットが割り当てられているので、ひたすらに作業効率を追求するために、是非それを活用して下さい。

フォルダのパスを起動

フォルダを開く際に、フォルダのパスを指定して開く事が出来ます。
システムドライブ (通常は c:) を開く場合は、ドライブの指定を省略できます。
"\\" で始まるネットワークフォルダを直接開く事が出来ます。

ここでポイントとなるのは、フォルダ名については自動補完が効くので、いちいち全部タイプする必要がないというのと、過去に開いたフォルダは履歴が残っているので、階層が深くてもすぐに開けるという点でしょうか。
比較的有名な機能なので、活用している方も多いのではないかと思います。

環境変数を起動

「ファイル名を指定して実行」では、環境変数が自動で展開されます。
例えば、"%temp%" はログオンユーザの一時フォルダを開きます。
"%homepath%\デスクトップ" は、ログオンユーザのデスクトップを開きます。
Java の開発者であれば、%java_home% なんかが便利かもしれません。

この機能の秀逸なのは、入力時点で内部的には既に環境変数が展開されているため、 "%homepath%\" まで書けば、"デスクトップ" が補完されるという点です。
よく使うフォルダはあらかじめ環境変数に入れておくというのもいいです。

任意のショートカットを起動

ここからがこの記事の真骨頂です。
「ファイル名を指定して実行」では、パスの通ったフォルダ全てを対象として、ショートカットの検索が行われます。
従って、自分専用のショートカットフォルダを用意しそこにパスを通しておく事で、様々なアプリケーションを起動する事が出来るようになります。

まず 1 つ空のショートカット用フォルダを用意して、そこにパスを通します。
パスが通った状態になったら、そのフォルダによく使うアプリのショートカットを片っ端から放り込みます。
このとき、ショートカットの名称はわかりやすい略称に変えておきます。
InternetExploere → ie、Firefox → fx、Excel → xl、Powerpoint → ppt 等々です。

ここまで準備が出来たら、「ファイル名を指定して実行」で放り込んだショートカットの略称をタイプするだけです。指定したアプリが起動します。
もちろん、使用したショートカットの履歴は残っていますし、そもそも短い略称であればタイプも手間になりませんね。この方法に慣れると、他の方法でアプリを起動する事はほとんど無くなります。

また、環境の移行が楽なのもポイントです。
別の PC 環境へ移行する際も、アプリのインストール先を合わせておけば、ショートカットフォルダをコピーしてパスを通せば、あっという間に元と同じ環境です。
よけいなランチャなどを導入して一生懸命環境を移す必要はありません。

(参考) パスの追加方法

バッチファイルを起動

ショートカットフォルダにパスが通ったら、そこにはショートカット以外のものを置く事も出来ます。
例えば、バッチファイルなどを実行する事が出来るので、定型作業を行うバッチなどがあれば、ショートカットフォルダに置いておくのがお勧めです。

このとき、バッチファイルであれば拡張子を指定せずに起動できます。
余談ですが、省略して起動できる拡張子は環境変数 %pathext% で定義されているので、特定のアプリについて拡張子を省略して起動したければ、ここに追加する事が出来ます。

フォルダを起動

フォルダのパスを指定して開く方法を上で紹介しましたが、頻繁に開くフォルダについてはフォルダのショートカットを置いておくと、短縮名で開く事が出来て楽ちんです。
このショートカットフォルダ自身のショートカットを置いておくと、思い立った時にすぐ追加する事が出来るので、活用の幅が広がります。

URL を起動

*.url ファイル。いわゆるインターネットショートカットを置いても起動できます。
ブラウザのお気に入りの選択すらまどろっこしい、超定番サイトなんかはここから起動するのもいいです。

その他のファイルであっても、実行可能であれば何でも起動できます。
イマジネーションを広げて色々と活用してみて下さい。

(おまけ) keisan.pl

ActivePerl を利用した、コマンドライン計算機をおまけで公開してみます。
「ファイル名を指定して実行」から使う事を想定した電卓です。

(keisan.pl)
@prefix = ('h', 'k', 'M', 'G', 'T', 'P', 'd', 'c', 'm', 'u', 'n', 'p', 'f');
$shisu{'h'} =   2;
$shisu{'k'} =   3;
$shisu{'M'} =   6;
$shisu{'G'} =   9;
$shisu{'T'} =  12;
$shisu{'P'} =  15;
$shisu{'d'} =  -1;
$shisu{'c'} =  -2;
$shisu{'m'} =  -3;
$shisu{'u'} =  -6;
$shisu{'n'} =  -9;
$shisu{'p'} = -12;
$shisu{'f'} = -15;

$i = 0;
foreach $exp (@ARGV) {
	if ($exp =~ /^-(\w)/) {
		$opt = $1;
		if ($opt eq 'd') {
			$opt = "";
			$opt{'d'} = 1;
		}
		next;
	} elsif ($exp eq '-') {
		$opt = "";
		next;
	}
	print '#' . ($i+1) . " : " . $exp . " = ";
	for ($j=0; $j<=$i; $j++) {
		$exp =~ s/#$j/$ans[$j-1]/g;
	}
	foreach $prefix (@prefix) {
		if ($opt{'d'}) {
			$num = 2 ** ( 10*($shisu{$prefix}/3) );
		} else {
			$num = 10 ** $shisu{$prefix};
		}
		$exp =~ s/([\d\.]+)$prefix/\(\1\*$num\)/g;
	}
	$ans = eval($exp);
	$ans[$i] = $ans;
	foreach $prefix (@prefix) {
		next if $prefix ne $opt;
		if ($opt{'d'}) {
			$ans /= 2 ** ( 10*($shisu{$prefix}/3) );
		} else {
			$ans /= 10 ** $shisu{$prefix};
		}
	}
	$ans =~ s/^(\d+)(\d{3})/\1,\2/ while $ans =~ /^(\d+)(\d{3})/;
	print $ans . $opt . "\n";
	$i++;
}

(keisan.bat)
@ECHO OFF
keisan.pl %1 %2 %3 %4 %5 %6 %7 %8 %9
PAUSE >> NUL

この内容の 2 ファイルにパスを通しておくと、以下のような事が可能になります。
(ファイル名を指定して実行)
keisan 10*10*10+1000 #1+1M -k #2 -M #3**2
(実行結果)
#1 : 10*10*10+1000 = 2,000
#2 : #1+1M = 1,002,000
#3 : #2 = 1,002k
#4 : #3**2 = 1,004,004M

簡単に解説すると、
  • 引数に与えた計算式を計算する
  • #n で第 n 引数の結果を引用できる
  • 数値の中に、k でキロ、M でメガ、m でミリ、u でマイクロのような単位が使える
  • 計算式の前にオプションで -k 等とすると結果に単位を付けて返す
といった感じです。詳しくはソースを読んで下さい。;P


カテゴリ: Development タグ: windows