Команда SETX и прочее...
народ!!!
При более подробном изучении выяснилось следующее:
Во всех батниках мы упорно пишем setx GPU_MAX_ALLOC_PERCENT 100
Однако, если запустить эту команду через cmd.exe, то выясняется,
что такой команды в Виндовсе НЕТ. Читаем Microsoft http://technet.microsoft.com/ru-ru/library/cc755104(v=ws.10).aspx
и выясняем, что такая команда существует только для сервера Windows 2008 и Windws Vista (см. пункт "назначение" в вышеуказанной ссылке).
Но зато есть команда SET которая нормально прокатывает.
Или это только у меня так...
dimasw, и... вывод какой?
Буратилла делает успехи в программировании ,он узнал команду;
-"@echo off"- Эта команда отключит вывод команд на экран на протяжении выполнения всего пакетного файла. Чтобы сама команда не выводилась, она начинается с символа @ - во!
dimasw, хм, а попробовать не судьба? )))
Win7 x86 SP1
Вот:
c:>setx /?
Три способа выполнения SetX:
Синтаксис 1:
SETX [/S <система> [/U [<домен>]<пользователь> [/P [<пароль>]]]] var
<значение> [/M]
Синтаксис 2:
SETX [/S <система> [/U [<домен>]<пользователь> [/P [<пароль>]]]] var /K
<путь> [/M]
Синтаксис 3:
SETX [/S <система> [/U [<домен>]<пользователь> [/P [<пароль>]]]]
/F <файл> {var {/A x,y | /R x,y строка}[/M] | /X} [/D <разделители>]
Описание.
Создание или изменение переменных среды в пользовательской
или системной среде. Переменные можно задавать с помощью
аргументов, параметров реестра или ввода из файла.
Параметры:
/S <система> Подключаемый удаленный компьютер.
/U [<домен>]<пользователь> Пользовательский контекст, в котором
должна выполняться эта команда.
/P [<пароль>] Пароль для этого пользовательского
контекста.
var Задаваемая переменная среды.
значение Значение, назначаемое переменной
среды.
/K <путь> Задание переменной по информации,
содержащейся в параметре реестра.
Путь должен задаваться в формате
кустраздел...параметр. Например,
HKEY_LOCAL_MACHINESystem
CurrentControlSet
Control imeZoneInformationStandardName.
/F <файл> Имя текстового файла, который следует
использовать.
/A x,y Задание абсолютных координат файла
(строка X, элемент Y) как параметров
поиска в файле.
/R x,y <строка> Задание координат относительно значения
"строка" как параметров поиска.
/M Указание создания переменной среды
на системном уровне (HKEY_LOCAL_MACHINE).
По умолчанию переменная среды
создается в разделе HKEY_CURRENT_USER
на уровне пользователя.
/X Отображение содержимого файла с
координатами x,y.
/D <разделители> Указание дополнительных разделителей,
таких как "," или "".
Встроенные разделители: символы пробела,
табуляции, возврата каретки и перевода
строки. Дополнительным разделителем может
быть любой знак ASCII.
Максимальное число разделителей,
включая встроенные, равняется 15.
/? Вывод справки по использованию.
Примечания.
1) SETX записывает переменные в главную среду в реестре.
2) На локальном компьютере переменные, созданные или измененные данным
средством, будут доступны в будущем окне командной строки,
но не в текущем окне CMD.exe.
3) На удаленном компьютере переменные, созданные или измененные данным
средством, будут доступны со следующего сеанса входа.
4) Допустимые типы параметров реестра: REG_DWORD, REG_EXPAND_SZ,
REG_SZ, REG_MULTI_SZ.
5) Поддерживаемые кусты: HKEY_LOCAL_MACHINE (HKLM),
HKEY_CURRENT_USER (HKCU).
6) Разделители определяются с учетом регистра.
7) Значения типа REG_DWORD извлекаются из реестра в десятичном
формате.
Примеры:
SETX MACHINE COMPAQ
SETX MACHINE "COMPAQ COMPUTER" /M
SETX MYPATH "%PATH%"
SETX MYPATH ~PATH~
SETX /S система /U пользователь /P пароль MACHINE COMPAQ
SETX /S система /U пользователь /P пароль MYPATH ^%PATH^%
SETX TZONE /K HKEY_LOCAL_MACHINESystemCurrentControlSet
Control imeZoneInformationStandardName
SETX BUILD /K "HKEY_LOCAL_MACHINESoftwareMicrosoftWindows
NTCurrentVersionCurrentBuildNumber" /M
SETX /S система /U пользователь /P пароль TZONE /K HKEY_LOCAL_MACHINE
SystemCurrentControlSetControl imeZoneInformation
StandardName
SETX /S система /U пользователь /P пароль BUILD /K
"HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NT
CurrentVersionCurrentBuildNumber" /M
SETX /F ipconfig.out /X
SETX IPADDR /F ipconfig.out /A 5,11
SETX OCTET1 /F ipconfig.out /A 5,3 /D "#$*."
SETX IPGATEWAY /F ipconfig.out /R 0,7 Gateway
SETX /S система /U пользователь /P пароль /F c:ipconfig.out /X
qboost, так я и попробовал:
а вот set работает
dimasw, команда setx является внешней программой setx.exe, в отличие от set - это внутренняя команда языка пакетной обработки
если при вызове setx выдается ошибка, что команда не найдена, значит по какой-то причине в переменной PATH нет пути к каталогу %windir%system32, где она, собственно, и расположена (или %windir%SysWOW64, но в эти детали вдаваться не будем)
ситуация эта не нормальная, но если сделать всё тупо и быстро, то вместо просто setx, можно написать %windir%system32setx, т.е.
%windir%system32setx GPU_USE_SYNC_OBJECTS 1
%windir%system32setx GPU_MAX_ALLOC_PERCENT 100
либо
set PATH=%windir%system32;%PATH%
setx GPU_USE_SYNC_OBJECTS 1
setx GPU_MAX_ALLOC_PERCENT 100
PS: setx сохраняет значение переменных в профиле пользователя (или в системном, с ключом /m) и нет необходимости вызывать эту команду всё время, достаточно одного раза
setx отсутствует только в Виндах ниже Висты (серверные я не учитываю).
Но есть специальное обновление для ВинХР, которое добавляет поддержку setx.
Lauarvik, спасибо за разъяснения. А теперь для тех кто на бронепоезде. У меня тоже setx ничего не выводит, значит ли это, что setx.exe не работает? В тоже время set выводит приличную портянку инфы О_о
UPD
В общем разобрался, у меня все ок, setx работает.
Lauarvik, спасибо, разобрался. Если правильно понимаю setx ставит значение навсегда, а команда set только на одну сессию.
dimasw, ну если грубо, то да
хотя не совсем так
set изменяет переменные окружения только в текущем контексте, который потом наследуется cgminer, но не будем вдаваться в детали, будем счетать что ты прав ;)