Próbuję utworzyć plik wsadowy systemu Windows, aby automatycznie ustawić zmienną środowiskową do używania Pythona 2.4 lub Pythona 3.3.Jak korzystać z polecenia setx w pliku wsadowym systemu Windows
Zarówno Python 2.4, jak i 3.3 są zainstalowane w moim systemie. Tu jest mój kodu:
::To toggle between Python24 and Python 33
@echo on
if (%PYTHONHOME:~-2%) == "24" (setx PYTHONHOME "C:\Python33" && setx PATH %PATH:Python24=Python33%) else (setx PYTHONHOME "C:\Python24" && setx PATH %PATH:Python33=Python24%)
pause
Na początek mam PYTHONHOME ustawiony C:\Python24
Ale Powyższy skrypt daje następujący błąd:
SUCCESS: Specified value was saved.
ERROR: Invalid syntax. Default option is not allowed more than '2' time(s).
Type "SETX /?" for usage.
Moja PYTHONHOME nadal wskazuje python 24 i nic się nie zmienia. Polecenie setx nie zmienia zmiennej środowiskowej. Co powoduje ten błąd?
Komendy 'setx' odwołują się do' newHome' i 'newPath', które nigdy wcześniej nie były przypisane. Czy zamiast tego użyłeś 'PYTHONHOME' i' PATH'? –
@AndriyM - dzięki, wszystko naprawione. Zacząłem od używania "nowych" zmiennych, potem zmieniłem strategię bez pełnej konwersji. – dbenham
Jak zachować wartości zmiennych po barierze ENDLOCAL? Napotkałem ten problem wcześniej i musiałem zapisać wartość do pliku ze zdrapką i przeczytać ją z powrotem, aby przejść przez barierę w przeszłości. – Jim2B