<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; CMD/BAT: организация универсальных путей через переменные среды]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=1263</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=1263&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «CMD/BAT: организация универсальных путей через переменные среды».]]></description>
		<lastBuildDate>Sat, 15 Mar 2008 16:36:50 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[CMD/BAT: организация универсальных путей через переменные среды]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=9792#p9792</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Kiber)]]></author>
			<pubDate>Sat, 15 Mar 2008 16:36:50 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=9792#p9792</guid>
		</item>
	</channel>
</rss>
