web-dev-qa-db-ja.com

現在のディレクトリをバッチファイルディレクトリに変更する

procdump 操作を実行するWindowsにbatファイルがあります。バッチファイルの問題は、ジョブを実行する前に、まずバッチファイルディレクトリにcdする必要があることです。そうしないと、スクリプトが機能しません。

現在のバッチファイルディレクトリに変更する方法

私のprocdump.batで次のコードを試しました:

cd "%~dp"
procdump -h devenv.exe mydump.txt

しかし、失敗しました。エラーメッセージは次のとおりです。

バッチパラメータ置換でのパス演算子の次の使用は無効です:%〜dp "

有効な形式の場合、CALL /?と入力します。またはFOR /?

編集: 提供された回答 は機能していますが、唯一の問題があります。現在のディレクトリがバッチファイルのディレクトリと異なる場合、 "The The指定されたパスが見つかりません。」誰でも何かアイデアはありますか?

19
Graviton

わかりました こちら%~dpの意味.

あなたが本当にやりたいことはこれだと思います:

cd /D "%~dp0"

(!)ただし、cdはアクティブなドライブを変更しないため、現在のディレクトリが別のドライブ上にあるときにバッチを実行しようとすると、正しい動作が得られないことに注意してください。

Edit:どうやら(ありがとう @ Yoopergeekcdコマンドに/Dパラメータを追加して、アクティブなドライブも変更します。

26
fretje

Fretjeの回答にコメントを残しておきますが、明らかにできませんか???


とにかく、メモに関して:
ただし、cdはアクティブなドライブを変更しないため、現在のディレクトリが別のドライブ上にあるときにバッチを実行しようとすると、正しい動作が得られないことに注意してください。 =


使用 /D CDコマンドで切り替えます。CDはアクティブなドライブを変更します。

5
Yoopergeek