Предположим следующее:Как рекурсивно расширить переменную окружения?
echo %MY_ENV_VAR%
расширяется %USERPROFILE%\some\path
echo %USERPROFILE%
расширяется C:\Users\MyUser
Моя цель состоит в том, чтобы создать пустой файл по следующему пути: C:\Users\MyUser\some\path\FOO.txt
.
Я попробовал следующую команду: type nul > %MY_ENV_VAR%\FOO.txt
К сожалению, выход есть ошибка, которая заявляет Система не может найти указанный путь.
Я довольно уверен, что это происходит потому, что оболочка не рекурсивно расширяется %MY_ENV_VAR%
и он пытается найти буквальный путь, который начинается с %USERPROFILE%
.
Как я могу достичь цели?
Что дает вам 'echo% MY_ENV_VAR%'? – nneonneo
@nneonneo '% USERPROFILE% \ some \ path', а выход' echo% USERPROFILE% 'расширяется до' C: \ Users \ MyUser' – SiegeX
Обычно Windows будет делать это для вас при настройке блока среды. Возможно, релевантно: http://stackoverflow.com/questions/13183575/m2-not-working-in-system-variable-path-but-in-user-variable-path-only http://superuser.com/questions/ 823190/are-there-rules-to-windows-7-variable-variable-names –