CMD CDをバッチが実行されたディレクトリに設定する

CMD CDをバッチが実行されたディレクトリに設定する

別の環境でプログラムを開くバッチ スクリプトを作成しようとしています (そのため、移植可能なバージョンを作成できます)。

これを使用して、set APPDATA=%CD%\dataそれを実行するように指示します。私が直面している問題は、バッチの開始時に次のエラーが発生することです。

CMD.EXE was started with the above path as the current directory. UNC paths are not supported. Defaulting to Windows directory.

cd代わりに、コマンドを使用してバッチ ディレクトリに変更したいと思います。これを行う簡単な方法はありますか?

答え1

ネットワーク ドライブ上にある場合は、ドライブをマップしない限り問題が発生する可能性がありますが、次の操作を行ってみてはいかがでしょうか。

APPDATA=%~dp0
cd /d %APPDATA%

cls を実行することでエラーをクリアすることもできますが、スクリプトが UNC パスから実行されるとこのエラーが発生します。マップするか、エラーを CLS で除去する必要があります。

答え2

これをバッチに入れてみます:

pushd "%~p0" 2> nul
pushd "\\%~p0" 2> nul

UNC フォルダーから開始した場合、1 行目は失敗しますが、2 行目は機能します。

ドライブマップされたフォルダーから開始した場合、2 行目は失敗しますが、1 行目は機能します。

どちらの場合も、現在のフォルダーはバッチ ファイルが置かれている場所になり、そこからフォルダーを変更できます。

cd後で、どのフォルダーから作業しているかを表示するために使用できます。

関連情報