+7 (495) 660-35-00

info@iteron.ru

129226, РФ, Москва

Сельскохозяйственная, д. 11, к.3, оф. 148

09:00 - 21:00

без выходных

Переменные среды в CMD, BAT-файле

 IT Заметки, Windows 7, Windows Server    

Бывает так, что написанный Вами BAT-файл работает на одном компьютере, но не работает на другом. Ошибка часто заключается в том, что были использованы прямые пути к файлам. Например батник для копирования всех текстовых файлов находящихся в папке windows на диске C

xcopy C:\windows\*.txt

Такой батник будет работать на любом компьютере, только если операционная система установлена на диск С, если ОС расположена на другом диске D,F,K,J и т.д., необходимо использовать переменную %WINDIR%

Такой батник будет работать на любом компьютере - без разницы на какой диск установлена ОС

xcopy %WINDIR%\*.txt

Переменные среды — текстовые переменные операционной системы, хранящие данные о ряде настроек системы. Используются переменные среды при копировании, перемещении, переименовании, удалении, создании файлов и папок других действий  в командной строке.

Список переменных среды ОС Windows Вы можете посмотреть введя в командной строке: set и нажав клавишу Enter Также можно вывести список переменных в текстовый файл с помощью батника

set > docent.txt

Bat-файл с таким кодом создаст текстовый файл docent.txt(здесь и далее имена подставляйте свои)и выведет список переменных среды ОС Windows в этот текстовый документ в том-же месте где и располагается запущенный батник.

Список  переменных сред

%ALLUSERSPROFILE%                     размещение профиля «All Users»

%APPDATA%                                  используемое по умолчанию размещение данных приложений

%CD%                                           путь к текущей папке

%CMDCMDLINE%                           строка команд, с помощью которой был запущен данный экземпляр Cmd.exe

%CMDEXTVERSION%                      номер версии текущих расширений обработчика команд

%COMPUTERNAME%                        имя компьютера

%COMSPEC%                                 путь к исполняемой командной оболочке

%DATE%                                        текущие данные, использует тот же формат, что и команда date /t

%ERRORLEVEL%                             код ошибки последней использовавшейся команды

%HOMEDRIVE%                              имя диска локальной рабочей станции

%HOMEPATH%                                полный путь к основному каталогу пользователя

%HOMESHARE%                              сетевой путь к общему основному каталогу пользователя

%LOGONSEVER%                            имя контроллера домена, который проверял подлинность текущей сессии

%NUMBER_OF_PROCESSORS%        количество процессоров, установленных на компьютере

%OS%                                           имя операционной системы

%PATHEXT%                                   список расширений файлов

%PROCESSOR_ARCHITECTURE%     архитектура процессора. Значения: x86, IA64

%PROCESSOR_IDENTFIER%            описание процессора

%PROCESSOR_LEVEL%                   номер модели процессора, установленного на компьютере

%PROCESSOR_REVISION%             номер модификации процессора

%ProgramFiles%                             путь к Program Files

%PROMPT%                                    параметры командной строки для текущего интерпретатора

%RANDOM%                                   произвольное десятичное число от 0 до 32767

%SYSTEMDRIVE%                           имя диска, содержащего корневой каталог

%SYSTEMROOT%                            размещение системного каталога Windows

%TIME%                                         текущее время

%USERDOMAIN%                            имя домена, содержащего список учетных записей пользователей

%USERNAME%                                имя пользователя, выполнившего вход в систему

%USERPROFILE%                            размещение профиля для текущего пользователя

%WINDIR%                                    размещение каталога операционной системы

Если Вы хотите посмотреть чему равна переменная среды на Вашем компьютере в командной строке(окно CMD), не забывайте прописывать впереди переменной "echo"

echo — команда  предназначенная для отображения строки текста

Например если Вы захотите узнать текущее время %TIME% и просто напишите %TIME% в CMD - то получите ошибку: "Синтаксическая ошибка в имени файла, имени папки или метке тома"

Если напишете echo %TIME% - то узнаете точное время

Батником вывести информацию в txt можно так

echo off

chcp 1251

echo сегодня %DATE% время %TIME% >> docent.txt

echo имя компьютера  %COMPUTERNAME% >> docent.txt

echo имя юзера %USERNAME% >> docent.txt

echo где Винда %WINDIR% >> docent.txt

echo и т.д. и т.п >> docent.txt

Использование переменной при удалении файлов и папок с помощью Bat файла

Удаление папки Docent которая находится на диске С в WINDOWS

RD С:\WINDOWS\Docent /S/Q

То-же самое, но удаляем папку  с помощью переменной %WINDIR%

RD %WINDIR%\Docent /S/Q

Использование переменной при перемещении файлов

Перемещение текстового файла docent.txt из папки WINDOWS на диске С в папку Program Files которая тоже на диске С

MOVE "C:\WINDOWS\docent.txt" "C:\Program Files"

То-же самое, но перемещаем с помощью переменных %WINDIR% и %ProgramFiles%

MOVE "%WINDIR%\docent.txt" "%ProgramFiles%"
скопировано с: http://docent777.ru/publ/ot_docenta/pro_batniki/peremennye_sredy_v_cmd_bat_fajle/1-1-0-29
источник: www.docent777.ru

 

Отсканируйте код