作業ディレクトリ


コマンド行は、作業ディレクトリ(カレントディレクトリ)がどこかによって解釈が変わります。プログラム名や、コマンド行引数のファイル名が絶対パスで指定されていなければ、あらかじめ決められた規則によって、どのディレクトリのファイルが指定されたのかが推測されます。作業ディレクトリは、この規則で大きな役割を果たします。そのため、コマンド行プログラムを実行するときには、自分が今どのディレクトリにいるかということが大きな意味を持ちます。

しかし、(cmdline)以外のGUIフロントエンドを使うときには、作業ディレクトリの位置に注意しなければならない場合はそれほど多くありません。次の2つの場合に限られます。

 

* コマンド行ツール名を絶対パスで指定していないとき(「設定ダイアログボックス」を参照)。システム内の別のディレクトリに同じ名前の別のプログラムが含まれている場合(たとえば、PCKcat.execygwinツールのcat.exe)、作業ディレクトリがそれらのプログラムを格納しているディレクトリになっていると、環境変数PATHの設定にかかわらず、そのディレクトリのプログラムが使われます。

* 入力ファイル」ダイアログボックスで「直接指定する」を選択したとき(「入力の指定」を参照)。PCKGUIフロントエンドでは、ダイアログボックスでファイル名を指定したり、エクスプローラから入力ファイルをドラッグドロップしたりしたときには絶対パスを使いますので、そのようなときにはどのディレクトリが作業ディレクトリでも、指定されたファイルが確実に使われますが、「直接指定する」を指定したときには相対パスを指定できますので、作業ディレクトリがどこになっているかによって使われるファイルが変わります。

 

このように、作業ディレクトリはいつも注意しなければならない存在というわけではありませんが、特に「入力ファイル」ダイアログボックスで「直接指定する」を選択したときには、作業ディレクトリを指定できなければ不便ですので、複数の入力ファイルを受け付けるGUIフロントエンドには作業ディレクトリを指定するための方法が複数用意されています。

ただし、pipeline)のメインダイアログボックスで「編集」ボタンを選択して起動したGUIフロントエンドからは、作業ディレクトリの変更手段が取り除かれています。パイプラインの一部となっているコマンドは、どれも同じ作業ディレクトリを使って実行しなければなりませんので、このようなコマンド行の作業ディレクトリは、個々のコマンドではなく、で全体的に指定するようになっているのです。

作業ディレクトリコンボボックス

GUIフロントエンドの入力グループボックスのすぐ下(入力グループボックスを持たないGUIフロントエンドの場合にはダイアログボックス最上部)には、ディレクトリ名が表示されているコンボボックスがあります。このコンボボックスは、作業ディレクトリの位置を示すとともに、直接入力によって作業ディレクトリの位置を指定することができます。また、コンボボックスのリストボックス部には、それまでに移動したことのある作業ディレクトリのリストが含まれていますので、これを使えばそれらのディレクトリに戻ることができます。

入力内容としては、もちろん、ディレクトリの絶対パスを「C:\Program Files\longtail\cmdline」のように直接書き込むこともできますが、現在の作業ディレクトリからの相対パスを使うこともできます。たとえば、「..」と入力すれば、現在の作業ディレクトリの親ディレクトリに移動します。

実際のディレクトリの移動は、「実行」ボタンを押したときか、ファイルのドロップ、ペーストによってコマンドが実行されようとしたときに行われます。移動に失敗すると、次のようなメッセージボックスが表示され、入力前のディレクトリに戻り、コマンドは実行されません。移動に成功したときには、コンボボックスの内容が作業ディレクトリの絶対パスに変わり(たとえば、「..」と入力した場合でも、「C:\Program Files\longtail」のようになります)、コマンドが実行されます。

 

ChDir」ボタン

GUIフロントエンドの「ChDir」ボタンを押すと、次のようなダイアログボックスが表示されます。

 

 

このダイアログボックスでフォルダ(ディレクトリ)をたどり、「OK」ボタンを押すと、最後に選択したディレクトリに移動します。このダイアログボックスは常に「マイコンピュータ」から表示されますので、ディレクトリ構造の底の方のディレクトリを指定するためには使いにくいかもしれません。

フォルダのドロップ、ペースト

エクスプローラや他のGUIフロントエンドからフォルダ(ごみ箱など、実際にはディレクトリではないものを除く)を1つ選択し、GUIフロントエンドにドラッグアンドドロップまたはコピーアンドペーストすると、そのディレクトリに移動することができます。「設定」ダイアログボックスの「フォルダをドロップしたときにただちにディレクトリ移動」がチェックされていたら、すぐにそのディレクトリに移動しますが、チェックされていなければ、そのディレクトリに本当に移動してもよいかどうかを尋ねる次のようなメッセージボックスが表示されます。

 

 

はい」を選択すれば移動し、「いいえ」を選択すれば移動しません。

でのディレクトリ操作

にも他のGUIフロントエンドと同様の作業ディレクトリエディットボックスはありますが、にはさらにcdchdirコマンドがあります。たとえば、環境変数TMPが指しているディレクトリに移動したい場合には、cd %TMP%というコマンドを実行すると簡単です(cdchdirsetのコマンド行で環境変数を使えるのは、ver.2.0以降のみです)。

インポートと作業ディレクトリ

バッチファイルをロードしたり、ドラッグアンドドロップやコピーアンドペーストでデータをインポートしたりすると、GUIフロントエンドの作業ディレクトリは、インポートデータで指定された位置に変わります。ただし、の場合は、「設定」ダイアログの「ロード/貼り付け時にディレクトリ移動しない」がチェックされていれば、作業ディレクトリは変わりません。また、インポートデータで指定されたディレクトリが存在しなければ、次のようなメッセージボックスが表示され、作業ディレクトリは変わりません。