3

ここに私の問題があります: %cd% を使用して、ユーザーがどこにでもスクリプトを実行できるようにしたいのですが、%cd% にスペースが含まれていると、(引用符に関係なく) 失敗します。パスをハードコーディングすると、引用符で機能しますが、変数の場合は失敗します。

失敗: (%cd% にスペースが含まれている場合) "%cd%\Testing.bat"

動作: 「C:\Program Files\Testing.bat」

何か案は?

4

1 に答える 1

3

%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!
于 2010-04-10T03:53:03.200 に答える