<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; CMD/BAT: организация универсальных путей через переменные среды]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=1263&amp;type=atom" />
	<updated>2008-03-15T16:36:50Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=1263</id>
		<entry>
			<title type="html"><![CDATA[CMD/BAT: организация универсальных путей через переменные среды]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=9792#p9792" />
			<content type="html"><![CDATA[<p>Наверняка многие из вас сталкивались с проблемами когда после переустановки системы, все 3,4,5 (нужное подчеркнуть) винчестеров перемешивают свои буквы, и старые ярлыки к утилитам уже не пашут. И варанта два: либо новые ярлыки, либо восстанавливать последовательность букв. Здесь прелагается частичное решение, в частности помогающее сделать ярлыки универсальными. Но в прицнипе несложно придумать и более широкое применение, в частности в задачах с портабельностью.<br />Сам скрипт в батнике, но манипулирует реестром:<br /></p><div class="codebox"><pre><code>cd %CD%\..\..\
SET REGDIR=HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
REG ADD &quot;%REGDIR%&quot; /v _mymusic /t REG_SZ /d %CD%</code></pre></div><p><strong>%CD%</strong> - полный путь к текущему каталогу (Изначально - это каталог запуска скрипта). Скрипт на 2 уровня вложен в папку моей музыки. Поэтому первой строчкой скрипта выходим на 2 папки вверх, и затем заносим в реестр глобальную переменную <strong>_mymusic</strong>, тип значения <strong>REG_SZ</strong>, значение <strong>%CD%</strong>.<br />Чтобы получить значение глобальной переменной достаточно ее название заключить в %%.<br />В итоге, заменив в ярлыке абсолютный путь на относительный, получаем универсальный путь который заработает после переустановки системы и запуска нашего батничка. Например:<br />Абсолютный путь (<strong>&quot;E:\mp3\Король и Шут&quot;</strong>)<br />Относительный путь (<strong>&quot;%_mymusic%\Король и Шут&quot;</strong>)<br /><span style="color: red">Внимание!</span> Не попадите названием в системные переменные. Большинство из них:<br /></p><div class="quotebox"><blockquote><p>Переменная Тип Описание<br />%ALLUSERSPROFILE% Локальная Возвращает размещение профиля «All Users».<br />%APPDATA% Локальная Возвращает используемое по умолчанию размещение данных приложений.<br />%CD% Локальная Возвращает путь к текущей папке.<br />%CMDCMDLINE% Локальная Возвращает строку команд, с помощью которой был запущен данный экземпляр Cmd.exe.<br />%CMDEXTVERSION% Системная Возвращает номер версии текущих расширений обработчика команд.<br />%COMPUTERNAME% Системная Возвращает имя компьютера.<br />%COMSPEC% Системная Возвращает путь к исполняемой командной оболочке.<br />%DATE% Системная Возвращает текущие данные. Использует тот же формат, что и команда date /t. Создается командой Cmd.exe. Дополнительные сведения о команде date см. в разделе Date.<br />%ERRORLEVEL% Системная Возвращает код ошибки последней использовавшейся команды. Значение, не равное нуля, обычно указывает на наличие ошибки.<br />%HOMEDRIVE% Системная Возвращает имя диска локальной рабочей станции, связанного с основным каталогом пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».<br />%HOMEPATH% Системная Возвращает полный путь к основному каталогу пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».<br />%HOMESHARE% Системная Возвращает сетевой путь к общему основному каталогу пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».<br />%LOGONSEVER% Локальная Возвращает имя контроллера домена, который проверял подлинность текущей сессии.<br />%NUMBER_OF_PROCESSORS% Системная Задает количество процессоров, установленных на компьютере.<br />%OS% Системная Возвращает имя операционной системы. При использовании Windows 2000 имя операционной системы отображается как Windows_NT.<br />%PATH% Системная Указывает путь поиска для исполняемых файлов.<br />%PATHEXT% Системная Возвращает список расширений файлов, которые рассматриваются операционной системой как исполняемые.<br />%PROCESSOR_ARCHITECTURE% Системная Возвращает архитектуру процессора. Значения: x86, IA64.<br />%PROCESSOR_IDENTFIER% Системная Возвращает описание процессора.<br />%PROCESSOR_LEVEL% Системная Возвращает номер модели процессора, установленного на компьютере.<br />%PROCESSOR_REVISION% Системная Возвращает номер модификации процессора.<br />%PROMPT% Локальная Возвращает параметры командной строки для текущего интерпретатора. Создается командой Cmd.exe.<br />%RANDOM% Системная Возвращает произвольное десятичное число от 0 до 32767. Создается командой Cmd.exe.<br />%SYSTEMDRIVE% Системная Возвращает имя диска, содержащего корневой каталог Windows XP (т. е. системный каталог).<br />%SYSTEMROOT% Системная Возвращает размещение системного каталога Windows XP.<br />%TEMP% и %TMP% Системная и пользовательская Возвращает временные папки, по умолчанию используемые приложениями, которые доступны пользователям, выполнившим вход в систему. Некоторые приложения требуют переменную TEMP, другие — переменную TMP.<br />%TIME% Системная Возвращает текущее время. Использует тот же формат, что и команда time /t. Создается командой Cmd.exe. Дополнительные сведения о команде time см. в разделе Time.<br />%USERDOMAIN% Локальная Возвращает имя домена, содержащего список учетных записей пользователей.<br />%USERNAME% Локальная Возвращает имя пользователя, выполнившего вход в систему.<br />%USERPROFILE% Локальная Возвращает размещение профиля для текущего пользователя.<br />%WINDIR% Системная Возвращает размещение каталога операционной системы.<br />Взято с <a href="http://www.totalweb.ru/index.php?showtopic=275">totalweb.ru</a></p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[Kiber]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=262</uri>
			</author>
			<updated>2008-03-15T16:36:50Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=9792#p9792</id>
		</entry>
</feed>
