2013-04-04 32 views

Odpowiedz

23

Get literę dysku z bieżącego katalogu z:

%cd:~0,2% 

% ~ dp0 jest bardzo przydatna w nietoperza: jest to folder, w którym znajduje się plik bat wykonywania.

Być może na początku skryptu, zrób coś takiego:

set _SCRIPT_DRIVE=%~d0 
set _SCRIPT_PATH=%~p0 

a następnie powtórzyć go do debugowania. % ~ d0 powinno dawać ci to, czego chcesz, ale inne opcje, o których wspomniałem, mogą być pomocne w rozwiązaniu problemu.

+1

Czy% cd% nie wskazuje ścieżki, z której wykonujesz _ wykonawcę? Jest zupełnie niedokładne, aby uzyskać właściwą ścieżkę pliku wsadowego. Na przykład wydaje się, że Windows XP ma dziwaczny błąd, który po przeciągnięciu i upuszczeniu pliku na program/skrypt, aby ten odrzucony plik był argumentem dla programu do wykonania, program zostanie w tajemniczy sposób uruchomiony z c: \ Documents and Settings katalog \\ (nazwa użytkownika) zamiast z własnego folderu. – Nyerguds

+1

Wygląda na to, że zmienił się od XP, ale w Win7 wygląda na to, że uruchamia się ze ścieżki pliku parametrów ... co jest nadal błędne. – Nyerguds

0

Można użyć %~dp0 aby uzyskać bieżący katalog roboczy:/

%~d0