2017-02-12 7 views
0

Моя программа - это средство установки и запуска на основе графического интерфейса для определенной программы, когда я говорю GUI, я имею в виду командные файлы. Когда он устанавливает программу, она всегда должна знать, где она установлена, в настоящее время она просто записывает ее в переменную, но это работает только в том случае, если они не закрывают программу и не возвращаются позже, поэтому я хотел знать способ хранения постоянной переменной. Я думал, может быть что-то вроде этого:Перманентные переменные для пакетных файлов

set instloc='C:\Users\JoeBloggs\Documents\Environment\My Programs\This program.exe' 
echo %instloc% > instloc.txt 
attrib +h instloc.txt 

Но мне было интересно, если есть специальная команда для него

+5

'setx instloc" C: \ Users \ JoeBloggs \ Documents \ Environment \ My Programs \ This program.exe "' – npocmaka

+4

Реестр был изобретен для этой цели. Многие статьи SO о том, как читать и записывать записи реестра в пакетном режиме. – Magoo

+3

Ну, есть оксюморон - приравнивающий GUI (графический интерфейс пользователя) с пакетными файлами. – dbenham

ответ

1

Set изменяет значение среды текущей оболочки, и изменение носит временное характер, но доступен немедленно. Это изменение не повлияет на другие запущенные оболочки, и как только вы закроете оболочку, новое значение будет потеряно.

Setx изменяет значение на постоянной основе, которые будут влиять на все будущие оболочками, но не изменяет среду оболочек уже работает. Вы должны выйти из оболочки и снова открыть ее до того, как изменение будет доступно, но значение останется неизменным, пока вы не измените его снова.

В вашем случае, вместо того, чтобы использовать набор использование Setx:

Setx instloc "C: \ Users \ JoeBloggs \ Documents \ окружающей среды \ Мои программы \ Это program.exe"

+0

Вы действительно пытались протестировать свой ответ?' Setx' не использует '='. 'setx instloc" C: \ Users \ JoeBloggs \ Documents \ Environment \ My Programs \ This program.exe " – DavidPostill

+0

@DavidPostill: Это опечатка. Человек, который пишет, может легко понять это. Я просто дал разницу и как используйте это. –

+0

«Это опечатка» Тогда исправьте свой неправильный ответ. – DavidPostill