eXeL@B —› Программирование —› переменные в Windows... |
Посл.ответ | Сообщение |
|
Создано: 05 марта 2007 05:14 · Поправил: bash · Личное сообщение · #1 Есть такая системная переменная в 2000 и XP как %date%. В XP в моём случае выдаёт значение 05.03.2007, в w2k какого-то хрена приписывается в начале еще и день недели (даже апплетом intl.cpl это не исправить)... Но не в этом суть! Мне было необходимо создать переменную %year% и %month%, и я написал так:
(отсчитываю символы с конца для совместимости с w2k)
Обрадовался, думал готово и даныые записаны в реестр, но не тут-то было. Переменные хранятся только в памяти консоли, но никуда не сохраняются. Ну я взял и вписал их в реестр через апплет sysdm.cpl через редактирование переменных, но в ответ на %year% например выдаётся date:~-4, т.е. тупо выдаётся сохранённая строка, а не значение 2007. В общем как можно такие самодельные переменные сохранить навсегда? |
|
Создано: 05 марта 2007 08:13 · Личное сообщение · #2 |
|
Создано: 05 марта 2007 09:16 · Поправил: bash · Личное сообщение · #3 Bitfry пишет: а тебе нужно автоматом через командный файл? Или ручками по мышке? Или через API? хм... хороший вопрос! Извиняюсь, забыл уточнить. Работаю только с cmd-файлами в данном случае. Автоматом и так можно в командном файлe указать эти переменные, но после его работы переменные испаряются. Просто один раз хотелось бы их сохранить раз и навсегда. Это можно сделать? Или в реестре хранятся только строковые переменные, а те которые вычисляются - где-то в библиотеках винды зашиты? |
|
Создано: 05 марта 2007 09:21 · Личное сообщение · #4 |
|
Создано: 05 марта 2007 09:37 · Личное сообщение · #5 Проблема тут в другом. bash пишет: Есть такая системная переменная в 2000 и XP как %date%. Оказалось нет такой переменной . Дело в том, что выражение %DATE% работает только в рамках команды SET, а она устанавливает среду cmd.exe, а не пользователя или системы. Так что извини, облом. ----- Всем привет, я вернулся |
|
Создано: 05 марта 2007 09:42 · Личное сообщение · #6 А точнее говорит сама команда сет (set/?): ... При включенной расширенной обработке команд доступны несколько переменных среды, которые не отображаются в списке, отображаемом при вызове команды SET. Значения этих переменных вычисляются динамически каждый раз при их извлечении. Если пользователь явно задает переменные с одним из этих имен, то это определение перекрывает соответствующее динамическое определение, описанное ниже: %CD% - раскрывается в строку текущей директории. %DATE% - раскрывается в текущую дату, используя тот же формат команды DATE. %TIME% - раскрывается в текущую дату, используя формат команды TIME. %RANDOM% - раскрывается в случайное десятичное число между 0 и 32767. %ERRORLEVEL% - раскрывается в текущее значение ERRORLEVEL %CMDEXTVERSION% - раскрывается в текущее значение версии расширенной обработки команд. %CMDCMDLINE% - раскрывается в исходную командную строку, которая вызвала командный процессор. ----- Всем привет, я вернулся |
|
Создано: 05 марта 2007 10:05 · Личное сообщение · #7 |
|
Создано: 05 марта 2007 11:04 · Личное сообщение · #8 |
|
Создано: 05 марта 2007 12:15 · Личное сообщение · #9 Bitfry пишет: Дело в том, что выражение %DATE% работает только в рамках команды SET вот это я лоханулся... Надо было мне раньше додуматься , спасибо! Crawler пишет: А можно не set. Можно так: "мой компьютер" щелкаешь правой кнопкой мыши -> "дополнительно" ->"переменные среды" -> "создать". Создаешь. (переменные среды пользователя или же системные, на выбор) Это верно, но заметь: то - всего лишь обычные строки, а мне нужны динамично вычисляемые значения. Покопался у себя в загашнике и нашёл один коммандный процессор KiXtart, а в нём на удивление есть переменные и @year и @month . Вот ссылка: www.kixtart.org/binary/distrib/KiX2010_453.zip Но стоит ли рисковать на ответственном сервере? |
|
Создано: 05 марта 2007 23:44 · Личное сообщение · #10 |
|
Создано: 06 марта 2007 10:48 · Личное сообщение · #11 |
|
Создано: 07 марта 2007 04:12 · Личное сообщение · #12 |
|
Создано: 07 марта 2007 07:42 · Личное сообщение · #13 |
eXeL@B —› Программирование —› переменные в Windows... |
Эта тема закрыта. Ответы больше не принимаются. |