Jak dodać ustawioną ścieżkę tylko dla tego pliku wsadowego?

W zasadzie wiem, że mogę przejść przez panel sterowania i zmodyfikować zmienną path. Ale zastanawiam się, czy istnieje sposób, aby poprzez programowanie wsadowe mieć tymczasową ścieżkę? W ten sposób jest on używany tylko podczas wykonywania tego pliku wsadowego. Nie chcę, aby ludzie wchodzili i modyfikowali swoje zmienne ścieżki tylko po to, aby użyć mojego pliku wsadowego.

Author: Flimzy, 2011-07-26

3 answers

Podobnie jak każda inna zmienna środowiskowa, z SET:

SET PATH=%PATH%;c:\whatever\else

Jeśli chcesz mieć najpierw wbudowaną małą kontrolę bezpieczeństwa, sprawdź, czy nowa ścieżka istnieje najpierw:

IF EXIST c:\whatever\else SET PATH=%PATH%;c:\whatever\else

Jeśli chcesz, aby był lokalny dla tego pliku wsadowego, użyj setlocal:

setlocal
set PATH=...
set OTHERTHING=...

@REM Rest of your script

Przeczytaj uważnie dokumenty dla setlocal/endlocal , i spójrz na inne odniesienia na tej stronie - Functions jest dość interesująca i składnia jest trudna.

The składnia strona powinna zacząć od podstaw.

 335
Author: Mat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-10 17:31:09

Jest ważny szczegół:

set PATH="C:\linutils;C:\wingit\bin;%PATH%"

Nie działa, natomiast

set PATH=C:\linutils;C:\wingit\bin;%PATH%
Działa. Różnica polega na cytatach!

UPD Zobacz też komentarz by venimus

 24
Author: 18446744073709551615,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-04-14 17:19:09

To prawda, ale to nie zmienia go na stałe, ale tylko dla bieżącego wiersza polecenia, jeśli chcesz zmienić go na stałe, musisz użyć na przykład tego:

setx ENV_VAR_NAME "DESIRED_PATH" /m

To zmieni go na stałe i tak, możesz go zastąpić innym skryptem wsadowym.

 21
Author: dumbak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-16 06:40:56