- ベストアンサー
コマンドプロンプトの正しい書き方
カレントディレクトリーとコマンドの正しい書き方について教えて下さい 例えばMOVEコマンドを使う場合、 (1)常にCHDIRで正しいカレントディレクトリーを指定し、移動元・移動先共にパスを付けて指定する。 (2)CHDIRで正しいカレントディレクトリーを指定してあれば移動元はパスを省略してもいい。 (3)移動元・移動先共にパスを付けて指定してあればCHDIRの指示は不要である。 私は今まで(2)の方法でやってきたのですが時々ミスが起きるようで最近(1)の方法に変えていますが、記述が煩雑です。(1)とか(3)でもいいのでしょうか。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
> バッチファイルにしたとき、カレントディレクトリーが変わる度にCHDIRの指示がいるのか? 全て絶対パスで書かれているのであれば基本的には、不要ですが たとえば、バッチ内でDOSアプリケーションを呼び足している場合 絶対パス指定だと、たとえばxxx.iniとか設定ファィルを内部的に呼び出しているアプリであれば 設定ファイルや定義ファイルがある場所と、カレントディレクトリーが違えば、 設定ファイルや定義ファイルが見つからないとエラーになる可能性はあります。 滅多にそんな物は無いとは思いますが、標準のDOSアプリ以外は、作る人の自由ですので どのように設計されているのかは変わりませんので… ですのでそういったアプリは、一般的にバッチファィル内でカレントディレクトリーが設定されています。 まぁ、正直言って、このあたりは作り手の自由なので、 アプリの仕様を見ながら、それにあわせて、バッチファイルを作れば良いだけなので…
その他の回答 (4)
- adbarg
- ベストアンサー率53% (1134/2108)
訂正 × どのように設計されているのかは変わりませんので… ○ どのように設計されているのかはわかりませんので…
- notnot
- ベストアンサー率47% (4900/10358)
No1です。 先に(3)と書いたとおり、 >フルパスで書いてあればCHDIRは省略してもいい です。
お礼
よくわかりました。ありがとうございます。
- adbarg
- ベストアンサー率53% (1134/2108)
要は、相対パスでするか、絶対パスを使うかの違いで どちらでも正しい方法でしょう。 ただ、カレントディレクトリが把握しにくいと言うこともあり 絶対パスでの記述か主流ですが… 1) 意味不明ですが… カレントディレクトリーは、相対パスの基準点ですので 便宜的な物で正しい位置というのは、ありません。 基本は、自分が作業しやすい位置に指定すると思います。 また、移動元・移動先共にパスを付けて指定すれば、絶対パス指定ですので カレントディレクトリーを指定する必要性はありません。 2) カレントディレクトリーの位置を移動元のパスにしたのですから省略してもかまいません。 念の為、chdirで、現在のカレントディレクトリーの位置を確認してください 3) 絶対パスでの指定ですので、カレントディレクトリーの指定は不要です。
お礼
早速の回答ありがとうございます。 意味不明の質問になってしまい申し訳ありません。 『バッチファイルにした時の正しい書き方は何でしょうか』という文章を書き漏らしてしまいました。 バッチファイルにしたとき、カレントディレクトリーが変わる度にCHDIRの指示がいるのか、それともフルパスで書いてあればCHDIRは省略してもいいのかと言うことをお聞きしたかったのです。 よろしくお願いします。
- notnot
- ベストアンサー率47% (4900/10358)
何が「正しい」ということは無いと思いますが、場所の決まったファイルのコピーならば、フルパスで指定するのが普通かと思います。つまり(3)。 >私は今まで(2)の方法でやってきたのですが時々ミスが起きるようで (2)でやるなら、chdir の実行後に ERRORLEVEL でchdirの成功を確認した方がいいでしょうね。
お礼
早速の回答ありがとうございます。 意味不明の質問になってしまい申し訳ありません。 『バッチファイルにした時の正しい書き方は何でしょうか』という文章を書き漏らしてしまいました。 バッチファイルにしたとき、カレントディレクトリーが変わる度にCHDIRの指示がいるのか、それともフルパスで書いてあればCHDIRは省略してもいいのかと言うことをお聞きしたかったのです。 よろしくお願いします。
お礼
よくわかりました。ありがとうございます。