Podczas wpisywania polecenia w powłoce Windows najpierw szuka programu w bieżącym katalogu, a następnie z katalogów PATH. Czy można w jakiś sposób (np. Przez zmienną środowiskową) wykluczyć katalog bieżący z wyszukiwania? Coś takiego jak SafeDllSearchMode, ale dla plików wykonywalnych zamiast bibliotek DLL?
Innymi słowy - jeśli mam jeden plik foo.exe w bieżącym katalogu i drugi w innym katalogu w PATH, jak mogę wykonać ten w katalogu PATH bez określania jego pełnej ścieżki?
windows
command-line
path
Aivar
źródło
źródło
cd \somwhere\else
do katalogu, w którym nie ma plików wykonywalnych.Odpowiedzi:
Nie znam żadnego sposobu, aby cmd wykluczył bieżącą ścieżkę. W przybliżeniu można jednak użyć mkdir, aby utworzyć pusty katalog w bieżącym katalogu, umieścić go w nim, uruchomić polecenie, wykonać kopię zapasową i usunąć katalog:
Oczywiście pusty katalog może być wszędzie tam, gdzie masz dostęp do zapisu; jeśli jest gdzieś indziej niż w tym samym katalogu, prawdopodobnie będzie łatwiej użyć pushd, aby wejść do niego i popd, aby wrócić przed usunięciem. Użycie pustego katalogu, który właśnie utworzyłeś, wydaje się lepszym pomysłem niż cd do losowego katalogu - nowy katalog nadal będzie pierwszy na ścieżce, więc lepiej użyć takiego, który jest pusty.
źródło