解決済みの質問
batファイルの相対パス
あるバッチが相対パスであるファイルを参照しています
このバッチファイルを直接起動すれば、正しく参照できますが、
別のディレクトリにいる別のバッチファイルからcallされた場合、
呼び出し先の相対パスではなく、
呼び出し元の相対パスになってしまいファイルを参照できません。
この問題をスマートに解決する方法はありませんか?
例のchild.batからはfile.txtを参照できますが、
parent_1.bat経由の場合、ファイルが見つかりませんとなります。
child.bat の中で、「cd c:\dir_a」を書いて基点を変更すればとりあえずは行けそうですが、可能な限り絶対パスのベタ書きは避けたいです。
宜しくお願いします。
【例】
c:\
|
+-dir_a
| |
| +-child.bat
| |
| +-file.txt
|
+-dir_b
| |
| +-parent_1.bat
|
+-dir_c
|
+-parent_2.bat
===== file.txt =====
test-test-test
===== file.txt =====
===== child.bat =====
type ./file.txt
pause
===== child.bat =====
===== parent_1.bat =====
call c:\dir_a\child.bat
===== parent_1.bat =====
投稿日時 - 2010-03-09 16:39:42
3人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(1件中 1~1件目)
pushd/popdコマンドを用いて一時的にカレントディレクトリを保存/復帰するという方法があります。
参考URL:http://www.atmarkit.co.jp/fwin2k/win2ktips/792pushd/pushd.html
投稿日時 - 2010-03-09 16:43:26
お礼
ありがとうございます。
単独では相対パスの問題は解決しませんが、併用する事でより効果的にできそうです。
投稿日時 - 2010-03-10 09:00:43