
別の環境でプログラムを開くバッチ スクリプトを作成しようとしています (そのため、移植可能なバージョンを作成できます)。
これを使用して、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
後で、どのフォルダーから作業しているかを表示するために使用できます。