Mam problem z skryptem wsadowym systemu Windows, w którym walnę głową (nie gra słów przeznaczonych). Problematyczny skrypt wygląda tak:Jak ustawić zmienną PATH na inną wartość zmiennej ze spacjami w pliku wsadowym Windows
if defined _OLD_VIRTUAL_PATH (
set PATH=%_OLD_VIRTUAL_PATH%
)
Kiedy go uruchomić i _OLD_VIRTUAL_PATH
jest ustawiony uzyskać:
\Microsoft was unexpected at this time.
_OLD_VIRTUAL_PATH
jest zmienną, która została pierwotnie powołana z PATH
i zawiera spacje - Jestem dość pewny, że to jest problem. Ale jakie jest rozwiązanie? Działa poprawnie, jeśli umieściłem go w cudzysłowach, ale nie sądzę, aby cała wartość zmiennej PATH
była cytowana.
Wow - Dziś nauczyłem się 2 rzeczy ... Byłem pewien, że ta składnia wysadzi się w powietrze, ale na pewno działa. Jednak nie jestem pewien, dlaczego byłaby potrzebna dla Evgeny - ustawienie zmiennej PATH ze spacjami nigdy nie było dla mnie problemem bez używania cytatów. Może "_OLD_VIRTUAL_PATH" Evgeny'ego ma jakąś inną specjalną postać (inną niż przestrzeń), która potrzebuje cytowania? –
@Michael: To nie są przestrzenie, które są problemem. Przepisałem post (mam nadzieję, że Chris nie ma nic przeciwko, może on wycofać, jeśli to konieczne) i wyjaśnił, co jest nie tak i dlaczego. – Joey
Dzięki Johannesowi, zapomniałem o przyczynie, ale to zdecydowanie ma sens. –