zmienne env systemu Windows nie są rozpoznawane


1

Mam następujące zmienne env:

VIM_HOME: %ProgramFiles(x86)%\Vim\vim74
CMD: %USERPROFILE%\cmd
PATH: ...%CMD%;%VIM_HOME%;...

C: \ Users \ me \ cmd \ vim.bat

@echo off
start vim.exe %*

Skłonić:

> echo %ProgramFiles(x86)%
C:\Program Files (x86)
> echo %USERPROFILE%
C:\Users\me
> echo %CMD%
C:\Users\me\cmd
> echo %VIM_HOME%
C:\Program Files (x86)\Vim\vim74

Jak dotąd wszystko dobrze ...

> echo %PATH%
...C:\Users\me\cmd;%VIM_HOME%;...

%VIM_HOME%nie rozwiązany, ale %CMD%był? I konsekwentnie:

> vim
'vim.exe' is not recognized as an internal or external command, operable program or batch file.

Nie rozumiem?


Myślę, że nie wkleiłeś czegoś poprawnie, ponieważ %ProgramFiles(x86)%nie ma dysku na swojej ścieżce, ale kiedy oceniasz, %VIM_HOME%jakoś * C: \ * jest magicznie wprowadzany.
Andon M. Coleman

@ AndonM.Coleman: Zmienna% ProgramFiles (x86)% ma pełną ścieżkęc:\program files (x86)
JSanchez

@JSanchez: Nie, nie robi, to jest jasne jak w dzień: > echo %ProgramFiles(x86)%->Program Files (x86)
Andon M. Coleman

@Kat: Cholera, dodaj% VIM_HOME% do cudzysłowów podczas dodawania go do ścieżki. Poinformuj nas, co się wtedy stanie.
JSanchez

@ AndonM.Coleman: Gotcha. Użytkownik mógł pozostawić część łańcucha.
JSanchez

Odpowiedzi:


0

Nie jestem nawet pewien, jak sformułować tę „odpowiedź”, więc jeśli uważasz, że możesz sformułować ją inaczej lub dodać coś cennego, zrób to:

Po wielu próbach (zobacz commentssekcję pod pytaniem), aby dowiedzieć się, dlaczego zmienna VIM_HOME nie działa, zaproponowano zmianę nazwy zmiennej z VIM_HOME na _VHOME. Użytkownik końcowy potwierdził, że ta zmiana pozwoliła mu uruchomić VIM za pomocą skryptu wsadowego bez problemu. Mimo to nie było „prawdziwego” powodu, dla którego zmienna VIM_HOME nie działałaby, chyba że jest to zastrzeżona zmienna wewnętrzna dla VIM.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.