W nowych wersjach systemu Windows (8 i 8.1 na pewno, we wcześniejszych nie testowałem) zmienił się katalog wywołania skryptów uruchamianych jako administrator. Domyślnie zamiast katalogu bieżącego jest to:
%SYSTEM%
czyli na przykład
C:\Windows\system32
Aby przywrócić funkcjonalność starych skryptów można zastosować na początku przejście do katalogu wywołania:
1 2 |
|
gdzie:
@setlocal enableextensions
– umożliwia dostęp do rozszerzenia CMD
Ponieważ: %0
to pełna ścieżka do wywoływanego programu (skryptu)
to:
@cd /d "%~dp0"
– przejście do katalogu wywołania, wykorzystujące dodatkowe zmienne skryptowe
%0
to standardowo nazwa pliku (skryptu) wykonywalnego wraz ze ścieżką, a ~dp
wyciągnięcie z niej litery dysku oraz samej ścieżki do katalogu.