ここに私の問題があります: %cd% を使用して、ユーザーがどこにでもスクリプトを実行できるようにしたいのですが、%cd% にスペースが含まれていると、(引用符に関係なく) 失敗します。パスをハードコーディングすると、引用符で機能しますが、変数の場合は失敗します。
失敗: (%cd% にスペースが含まれている場合) "%cd%\Testing.bat"
動作: 「C:\Program Files\Testing.bat」
何か案は?
ここに私の問題があります: %cd% を使用して、ユーザーがどこにでもスクリプトを実行できるようにしたいのですが、%cd% にスペースが含まれていると、(引用符に関係なく) 失敗します。パスをハードコーディングすると、引用符で機能しますが、変数の場合は失敗します。
失敗: (%cd% にスペースが含まれている場合) "%cd%\Testing.bat"
動作: 「C:\Program Files\Testing.bat」
何か案は?
%CD%
スクリプトが存在するディレクトリではなく、スクリプトを呼び出したときにユーザーがいたディレクトリを示すため、正しい方法ではありません。
%~dp0
からドライブとパス情報を抽出するために代わりに使用し%0
ます。
REM C:\Program Files\test_caller.bat
@echo I am the caller and I reside in: "%~dp0"
@"%~dp0\test.bat"
...
REM C:\Program Files\test.bat
@echo Yippeee!
...
C:\>"\Program Files\test_caller.bat"
I am the caller and I reside in: "C:\Program Files\"
Yippeee!
C:\>e:
E:\>"C:\Program Files\test_caller.bat"
I am the caller and I reside in: "C:\Program Files\"
Yippeee!