Is there any command line tool that can be used to edit environment variables in Windows? – Super User

C. работа в командной строке операционной системы

После загрузки операционная система готова к работе. На ней можно запускать различные системные и прикладные программы. Некоторые пользователи взаимодействуют с операционной системой косвенно, через файлы (например, Volcov CMD, Norton Commander и т.д.). или операционные оболочки (например, Dos Shell в Windows 3.11). Однако, во-вторых. Когда оболочки загружены, некоторые программы не запускаются по разным причинам. Во-вторых, сложно ориентироваться из-за множества операционных оболочек. Во-вторых, запуск оболочки не всегда возможен (например, при кратковременном выходе из запущенной программы и возвращении в операционную систему). В-четвертых, при сбое Microsoft Windows 95/98 единственной доступной операционной системой может оказаться командная строка. Это происходит, когда при временном выходе из программы в DOS операционная система загружает файл Command.com поверх программы, и оперативной памяти не хватает для операционной оболочки.

В этой ситуации необходимо понимание того, как работать с командной строкой операционной системы. В этом разделе кратко описаны программы файловых утилит в операционных системах Microsoft (MS-DOS, Windows98/NT) и IBM Linux.

Для получения более подробной информации обратитесь к документации операционных систем.

После загрузки ядра операционной системы (файлы MSDO и Io.sys для DOS), в этой оболочке (или Shell) находятся командные подсказки операционной системы и переменные среды. Эти переменные среды определяют программы, пути поиска вспомогательных файлов и подсказки операционной системы.

В MS-DOS существует две оболочки. Первая программа, Command.com, является выбором по умолчанию и поставляется с дистрибутивом этой системы. Вторая оболочка – это оболочка Norton Utilities for DOS v. 6.0 – 8.1 NDOS.com.

Операционные системы с несколькими оболочками известны как UNIX. Оболочки Bourne Again Shell (BASH) и TCS shall особенно популярны в LINUX.

Все эти оболочки имеют различное окружение. С этого момента автор начинает обсуждение командной строки операционной системы.

Следует отметить, что [Р. Петерсен] – зона, свободная от преступности! Издательство BHV, Киев. Введение в LINUX: руководство по операционной системе. На странице 446 (с. 442) автор классифицирует переменные окружения следующим образом, чего мы и будем придерживаться.

1. Специальные переменные, которые нельзя переопределить, называются системными переменными.

2. Специальные значения, которые могут быть переопределены, называются переопределенными переменными.

3. Пользовательская переменная – это переменная, которая не обязана присутствовать в среде.

1. Расположение командного процессора для COMSPEC.

2. Командная строка PROMPT.

3. Родная оконная система Windows 3.1x (только в MS-DOS v. (WINPMT) 6.0 – 622

4. Текущая версия процесса подачи каталога DIRCMD.

5. Переменная путей текущей конфигурации DOS (только для MS-DOS v. 1) SCONFIG.

6. поиск исполняемых файлов PATH с помощью переменной пути PATH.

7. переменные для каталогов временных файлов TEMP и TM.

8. Пакеты приложений требуют определенных переменных среды.

В этом разделе не рассматриваются системные переменные для графической оболочки Windows.

В таблице приведены значения по умолчанию для переменных окружения.

Таблица C. I Значения основных переменных MS-DOS поумолчанию.

Системные переменная DOS.

1. Этот параметр не имеет значения в файле Autoexec.bat и используется только для запуска операции резервного копирования%. Переменная CONFIG определяет, какие из данных конфигурационных файлов Config.sys и Autoexec-bat активны на момент установки операционной системы. Для конкретной конфигурации файла Config.sys эта строка может использоваться для установки перехода к определенной последовательности загрузки резидентных программ. Для пользователя эта переменная носит чисто информативный характер.

2. Параметр COMSPEC определяет местоположение оболочки DOS или командного файла. Автор считает, что есть только одна причина для изменения этой переменной – если командный файл перемещен. Этот путь соответствует пути к командному файлу, указанному директивой SHELL в каталоге файла Config.sys.

Примером может служить загрузка операционной системы Microsoft с дискеты. При замене дискеты в памяти компьютера создается виртуальный файл размером 2 Мбайт. Название этой команды – ConfigSys:

Система не зависает, пока вы вставляете его; командный файл всегда вызывается с виртуального диска D.

3. Часовой пояс рабочей станции WAN задается переменной Ty. ‘синтаксис

Zzz – это местное время, а hh – на несколько минут позже Гринвича. Для Москвы, таким образом:

Другими словами, EST обозначает отход от стандартного времени (долгое время), PST обозначает переход на стандартное время (быстрое время), а EDT/PDT обозначает переход на более длительное время.

В соответствующих разделах, посвященных различным функциям оболочки DOS.

За следующими исключениями, большинство переменных среды оболочки MS-DOS определяются с помощью команды SET в файле Autoexec.bat:

Отдельные настройки PATH могут быть сделаны в файле Autoexec.bat.

Команда SET без параметров выводит текущее состояние переменных окружения.

Присваивает строковое имя (значение “value”) переменной с идентификатором. Существует разница между прописными и строчными буквами в слове value string.

Удаляет все значения из системной переменной окружения с указанным именем идентификатора.

Придает значение переменной TMP, которая использовалась ранними программами Microsoft для указания каталога временных файлов.

Снова введите ту же команду в нижнем регистре.

Переменная FILE теперь может использоваться вместо имени файла scandisk.log, как в следующих примерах:

Примечание 1: Автор предостерегает от использования дополнительных пробелов в команде set, поскольку они могут привести к сбоям в работе операционной системы MS-DOS v.6.0. Автор не добавил переменную tmp в команду set TMP = C:TMP. За знаком “=” последует пробел, чтобы очистить эту переменную.

Примечание 2. Только файл Autoexec.bat позволяет устанавливать и очищать переменные среды, и это не влияет на значения других компонентов. Изменения переменных окружения в операционных оболочках (и графических приложениях MS WINDOWS) влияют только на текущий сеанс эмуляции операционной системы.

Пути, по которым исполняемые файлы будут искаться в командной строке или запускаться из графической оболочки, определяются переменной PATH. Это может потребоваться в следующих случаях:

1. Если программа запускается из того же раздела (или его части), а не из своего “родного” каталога, необходимо открыть раздел этого раздела. Наиболее часто используется такой случай.

2. Используются другие программы, не находящиеся в “родном” каталоге программы. При запуске программ Windows происходит следующее обстоятельство.

Префикс SET для удобства опускается в написании переменной PATH. синтаксис

Для описания пути можно использовать как заглавные, так и маленькие буквы. Это дополнение очень важно! При добавлении новых путей в переменную PATH в данной ситуации путь должен быть записан в верхнем регистре.

Переменная PATH очищается, когда устанавливается значение PATH или PATA=без путей. С другой стороны, задание является единственной целью присваивания.

P ATH=<новый_список_путей> приводит к замене существующего значения переменной новым значением, а не добавление нового значения к списку имеющихся.

Команда SET используется для добавления новых путей к файлам по одному в переменную PATH. Пример:

Позволяет переместить переменную PATH в конец.

Переменная PATH добавляется к началу следующего пути.

Примечание 1. Перед проверкой путей в переменной PATH сначала определяется, существует ли файл с таким именем в рабочем каталоге.

Примечание 2. В соответствии с порядком записи переменных PATH, поиск в этом файле ведется справа налево. Программа, не являющаяся родной для системы, запустится при вызове из любого “неродного” каталога.

Примечание 3. Переменная PATH выводит только пути поиска исполняемых файлов. Append. Для неисполняемых файлов (например, файлов данных) путь поиска задается с помощью команды Append.

Файлы лексикона определяются программой TEXT. Если каталог, содержащий программу лексикона, не указан, то используется каталог, содержащий программу лексикона.

Каталог, содержащий внутренние файлы ChiWriter, задается CHIFILES. Если каталог не указан, используется каталог cw.

87 указывает программам TurboC и Turbo Pascal, использовать или нет (Set 86=M) инструкции сопроцессора i80x87. Инструкции работают только при наличии сопроцессора в системе, если переменная не используется.

Имя каталога, в котором архиватор создает свои временные файлы, задается PKTMP.

Имена каталогов (разделенных “;”), в которых компилятор Microsoft ищет заголовочные файлы, задаются ключевым словом INCLUDE.

Когда библиотеки и объектные файлы собираются из исполняемого файла, ключевое слово LIB указывает имена каталогов (разделенных “;”).

Имена каталогов Norton Commander определяются NC. В более поздних версиях по умолчанию используется каталог файлов nc,com.

Volkov Commander (VC) задает имена служебных файлов. Расположение по умолчанию для файла vc.com

Имена файлов Norton Utilities задаются программой NU. По умолчанию используется файл Norton.exe.

Микропрограмма проверки орфографии – это LEX. Его необходимо настроить перед использованием этой программы. При возникновении ошибки программа не запустится.

Каталог файлов редактора MultiEdit определяется переменной ME_PATH. Если файлы находятся там, где они должны быть, она не требуется.

B LASTER – определяет параметры звуковой платы. Пример:

Аппаратное прерывание – IR9 (совместимо с Sound Blaster Pro), базовый порт ввода/вывода – 330, тип карты – 2, карта DMA – 1, тип карты – FB. Эта переменная в файле Autoexec.bat устанавливается командой установки драйвера звуковой карты.

Переменные TEMP и TMP указывают на каталоги программ Microsoft. Старые приложения используют переменную TMP, а более современные – переменную TEP.

L INUX имеет гораздо больше переменных среды, чем DOS и ее оболочки. В данном случае системы, напоминающие UNIX, были разработаны специально для управления строкой подсказок операционной системы. Для написания реальных программ пользователи UNIX могут использовать специальную команду.

Для выполнения этих операций различные разработчики операционных систем UNIX создали различные оболочки в дополнение к различным ядрам и приложениям. Bourne Again Shell (BASH), Public Domaine Korn shel и TC – Shall – это три оболочки, которые LINUX поддерживает в настоящее время, вобрав в себя лучшее из этих достижений. Coron-shell является предком Korn, Shell и C. Несмотря на различия в том, как реализованы оболочки этих UNIX-подобных операционных систем, между ними больше сходства, чем различий. Это имеет смысл, поскольку они объединены в единую операционную систему для компьютеров, поддерживающих Intel. Начнем с рассмотрения переменных этих оболочек.

:/>  Как открыть Блокнот с правами администратора - Snaptik

По умолчанию в LINUX используется BASH. Однако пользователь может загрузить другую оболочку по своему усмотрению. Все они вызываются одновременно, расходуя память компьютера. Новая оболочка загружается с настройками по умолчанию, в отличие от Command.com и NDOS, а текущие настройки сохраняются, как в DOS. Когда вы возвращаетесь в исходное состояние (dOc), переопределенные переменные очищаются. Команды export и setenv, которые перечислены ниже, используются для “наследования” переменных или сохранения настроек предыдущих оболочек в последующих.

Как и в любой операционной системе, константа представляет собой символьное выражение или группу символов, заключенных в двойные кавычки (как в C). На имена как переменных, так и констант существенно влияет регистр набираемых букв. Так, в отличие от DOS, me и ME – это разные переменные!

На этом рисунке переменной myfile присвоена строка List. Теперь строка List может быть заменена на доступ к myfile. В качестве примера здесь приведены фрагменты команд, которые хорошо выполнились.

В этом примере создается оглавление каталога (см. команды ls???), которое передается в файл List. Затем на экран выводится следующее сообщение:

Печатный список

Содержимое файла List или оглавление текущего каталога распечатывается принтером. Переменной предшествует знак доллара, указывающий на то, что вместо символов используется строковая переменная (в данном случае myfile).

Где новое значение константа

Чтобы удалить переменную из среды, используйте команду unset. Например,

Удаляет из окружения переменную myfile.

С помощью команды env можно ввести только определенные переменные среды, в то время как текущие значения переменных должны быть введены с помощью команды set.

Чтобы экспортировать переменную в другую оболочку, используйте команду export. синтаксис

. Перед этим необходимо определить переменные. Это команда и список экспортируемых переменных, разделенных пробелами.

Переменная HOME.

Имя пути к вашему домашнему каталогу задается переменной HOME. Администратор учетных данных создает этот каталог автоматически, и для этого каталога переменной присваивается соответствующее значение. Когда вы хотите указать имя пути к начальному каталогу, вы используете эту переменную. Например, переменной HOME присваивается значение /home/yuri. Порядок Outsider задается.

В каталоге /homr/yuri letters есть раздел для перехода к /homeR/lettes.

Переменная LOGNAME

В этой переменной указывается Ваше регистрационное имя. As such, yuri’s user’s perception of this being repeated will be UURI. Она поможет в тех случаях, когда требуется указать регистрационное имя.

Часовой пояс, который использует система, задается этой переменной.

Зона может быть установлена так же, как и переменная DOS T.

При регистрации LINUX использует три оболочки (более подробную информацию см. во введении к разделу “Переменные BASH”). Оболочка, загружаемая по умолчанию, задается переменной SHELL. Файлы оболочки получают в качестве строкового аргумента каталог, содержащий файл shells. Пример:

B ASH обозначен как оболочка, позволяющая просматривать файлы.

Оболочка PDKSH устанавливается в качестве стандартной загружаемой оболочки.

Оболочка по умолчанию выгружается TCSH.

Имейте в виду, что оболочка изменится не сразу, а только после перезагрузки системы.

В этой переменной содержатся имена каталогов, в которых хранятся запущенные в данный момент программы. Указанные в этой переменной каталоги проверяются на наличие файлов с таким именем. В отличие от DOS, вы не можете запускать файлы из текущего каталога, если он не указан в переменной PATH (он может быть указан как GUIDa).

Все каталоги перечисляются в переменной PATH без пробела между ними и разделяются двоеточием, “:”. Текущий список обозначается двоеточием в конце каталога. Имена каталогов /usr/bin и /sbin должны быть включены в переменную PATH. По умолчанию переменная PATH выглядит следующим образом:

Это рабочая база каталогов.

В переменную PATH добавлены новые каталоги.

Домашний каталог включен в список каталогов PATH в этом примере.

Тип подсказки операционной системы определяется этими переменными.

Функциональность электронной почты, которая обычно реализуется с помощью дополнительных программных пакетов для других операционных систем, встроена в операционную систему LINUX. Однако для того, чтобы электронная почта функционировала должным образом, необходимо указать местоположение почтового ящика пользователя LINUX. Система хранит все сообщения в этом почтовом ящике под именем пользователя. Обычно, когда создаются учетные данные пользователя, создается и почтовый ящик, и система автоматически добавляет его в файлы конфигурации.

Однако местоположение может быть гибким. Для этого существует переменная MAIL. Путь к основному почтовому ящику указывается переменной MAIL. Эта переменная должна существовать, если у каждого пользователя есть почтовый ящик.

Период времени, по истечении которого система будет уведомлять вас о получении почты, задается переменной MAILCHECK. По умолчанию установлено 10 минут, или 600 секунд. Время измеряется в секундах.

На этом рисунке основной почтовый ящик перемещен в /var/mail_yuri, а уведомления о входящей почте отправляются каждые 1200 секунд (20 минут).

В BASH якобы существуют дополнительные режимы оболочки. внутренние переменные, значения которых могут быть сброшены или установлены.

В этом режиме комбинация клавиш Ctrl + d не может быть использована для выхода из оболочки. Выход только с помощью команды exit При использовании комбинации клавиш Ctrl + d этот режим используется в качестве меры безопасности.

При перенаправлении вывода этот режим используется для того, чтобы новые файлы не записывались поверх существующих. Когда в приведенном выше примере включен режим noclobber, вторая команда будет неудачной. Третья команда не выполнится. Первая команда не вернет ошибку, если файл myfile создается впервые.

Ввод и вывод смотри C.3.3

Этот режим предотвращает использование в шаблонах специальных символов регулярных выражений, таких как *.? [],]. В этом режиме эти символы можно использовать в именах файлов. Почему? Если имя файла является подходящим для использования. Однако использование регулярных выражений запрещено!

С помощью этой переменной можно указать пути поиска дополнительных почтовых ящиков. Каждый пользователь должен иметь почтовый ящик, созданный на его имя электронной почты, как уже было сказано в разделе C.2.3.5. Однако пользователи могут иметь несколько дополнительных почтовых ящиков, местоположение которых определяется этой переменной. Однако эта переменная должна быть определена отдельно и не создается автоматически при создании учетных данных пользователя.

В следующем примере подробно описано расположение второго почтового ящика, который находится в каталоге /home/mail/Yuri.

В операционных системах, не являющихся UNIX-подобными, эквивалента этой переменной не существует. Подкаталоги, в которых команда cD ищет переменную, определяются командой cd. Рассмотрим такой сценарий: “Это часть дерева каталогов в системе LINUX.

/home/yuri letters-old – это текущий каталог. Теперь команда

Он отправится в /home/yuri/mails, если нет переменной CDPATH. С другой стороны, порядок.

Что приведет к ошибке, если путь CDPATH не включает путь каталога /home/yuri.

Используйте эту переменную всегда осторожно! Переменная CDPATH позволяет указывать каталоги с одинаковыми именами!

Переменная указывает тип подключенного терминала. Программам, выбирающим режим вывода данных, требуется эта информация. Для разных терминалов (или консолей) существуют различные раскладки клавиатуры и типы символов. Обычно, если вы регистрируетесь с терминала или система правильно распознает его, она выбирает тип за вас. Команды mode, chcp и keyb в DOS можно использовать для переназначения клавиш или других программ.

Команды в этой переменной позволяют настроить редакторы Ex и Vi. Команды в переменной EXINIT выполняются при вызове этих редакторов. В кавычках команды записываются в одну строку. Последовательные опции с одинаковым префиксом записываются.

Is there any command line tool that can be used to edit environment variables in windows?

Все очень просто: переменные среды хранятся в реестре, а именно в ключе HKEY_CURRENT_USEREnvironment для пользователей и ключе HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment для систем.

Этого можно добиться без использования стороннего программного обеспечения с помощью PowerShell. Вы можете запрашивать значения реестра с помощью Get-ItemProperty, изменять значения реестра с помощью Set-ItemProperty, добавлять ключи реестра с помощью New-Item, удалять значения с помощью Remove-ItemProperty и добавлять значения с помощью Remove-ItemProperty.

Теперь, для примера, вы можете использовать их для редактирования переменной окружения PATH:

Вы можете использовать $Env:PATH для получения значения пользовательского PATH, если хотите его изменить;

Otherwise use (Get-ItemProperty -Path “HKLM:SYSTEMCurrentControlSetControlSession ManagerEnvironment” -Name PATH).PATH to get value of system PATH.

Вот пример сценария, который изменяет системный PATH:

$directory=Read-Host "Please input directory that needs to be added to PATH"
$path=(Get-ItemProperty -Path 'HKLM:SYSTEMCurrentControlSetControlSession ManagerEnvironment' -Name PATH).PATH.Split(';')
if ($directory -notin $path) {$path =$directory}
$path=$path -join ";"
Set-ItemProperty -Path 'HKLM:SYSTEMCurrentControlSetControlSession ManagerEnvironment' -Name PATH -Type String -Value $path

PowerShell добавит указанный вами каталог в PATH, если его там еще нет, если вы сохраните его как файл *.ps1 и запустите его таким образом.

Выполнение каких либо действий в заданный интервал времени.

Речь пойдет не о запуске командного файла в определенное время, а
о выполнении какой-то его части только в определенный интервал времени,
например, с 10:00 до 12:00. Решения данной задачи потребует сравнения
текущего времени с указанным промежутком.

Для примера, создадим командный
файл, выполняющий запуск стандартного калькулятора Windows , только в том
случае, если он выполняется в интервале времени от 10:00 до 12:00. Необходимо
получить текущее время и выполнить проверку того, что оно не больше 12:00 и
не меньше 10:00 .Команда IF позволяет выполнить сравнение строк
при использовании формата:

:/>  Как активировать Виндовс 10 быстро и просто - бесплатная активация Windows 10

I F /I строка1 оператор сравнения строки2 команда

Оператор сравнения имеет следующие значения:

EQU – равно

NEQ – не равно

L SS – меньше

L E – меньше или равно?

G TR больше не будет.

G E – больше или равно?

а ключ /I, если он указан, задает сравнение текстовых строк без учета
регистра. Этот обычно используется для сравнения текстовых строк в
форме строка1==строка2. Сравнения проводятся по общему типу данных,
так что если строки 1 и 2 содержат только цифры, то обе строки преобразуются в
числа, после чего выполняется их сравнение.


REM Время меньше 12:00 – перейти на анализ второго условия, иначе – выход

if %time:~0,2% lss 12 goto tst2

exit

:tst2

Rem Время 10:00 или больше должно перейти к выполнению; если оно меньше, командный файл должен быть завершен выполнением команды exit.

if %time:~0,2% gtr 10 goto excalc

exit

:excalc

calc.exe

Подобным же образом можно организовать проверку по дате, учитывая тот факт, что для данного способа
сравнения необходимо использовать только числовые значения из переменных.

Выполнение команд по расписанию.

В операционных системах WINDOWS XP и старше существует утилита командной
строки AT.EXE, позволяющая управлять задачами для
планировщика заданий Windows, и таким образом, выполнить команду или
пакетный файл в указанное время на локальном или удаленном компьютере.

В операционных системах Windows 7 и старше, утилита at.exe присутствует, но признана устаревшей и нерекомендуемой к использованию в будущем.
Вместо нее рекомендуется использовать schtasks.exe, которая обладает большими возможностями, но сложнее в использовании.

Примеры использования современной утилиты имеются в разделе со списком команд, а на данной странице, все же воспользуемся простой классической AT.
Команда AT предназначена для запуска команд и программ в указанное время
по определенным дням.

Примеры команды AT [\имя_компьютера] [ [код] [/DELETE] | /DELETE [/YES]] AT [\имя_компьютера] время [/INTERACTIVE] [ /EVERY:день[,…] | /NEXT:день[,…]] “команда”

имя_компьютера – имя удаленного компьютера. Если этот параметр
опущен, задача относится к локальному компьютеру. код – порядковый номер запланированной задачи.
Указывается если нужно отменить уже запланированную задачу с помощью
ключа /delete. /delete – отменить запланированную задачу.

Если код задачи опущен,
отменяются все задачи, запланированные для указанного
компьютера./yes – не будет запроса на подтверждение при отмене всех
запланированных задач.время – Время запуска команды./interactive – интерактивный режим, разрешение взаимодействия
задачи с пользователем.

Задачи, запущенные без этого ключа невидимы для
пользователя компьютера./every:день[,…] Запуск задачи осуществляется по указанным дням недели или
месяца. Если дата опущена, используется текущий деньмесяца./next:день[,…

Примеры использования

Изменение даты и времени файлов или папок.

В Windows, к сожалению, не существует стандартного консольного средства для изменения даты и времени создания, доступа и модификации файлов и папок. Кто имел дело с Unix/Linux знает, что в этих операционных системах имеется простая и удобная утилита
touch с помощью которой можно изменить время последнего доступа или время модификации файла на текущее значение или на значение времени,
заданное в качестве аргумента командной строки.

Само собой разумеется, что командная строка Windows с большим отрывом превосходит интерфейсы UNIX и Linux. Пакет содержит наиболее широко используемые утилиты Unix/Linux, которые можно использовать для запуска файлов командной строки Windows или как консольные команды в среде пользовательской оболочки (в составе модуля sh.exe).

Использование переменных в командных файлах.

При работе с командными файлами, очень важное значение имеет такой инструмент как переменные окружения (environments) – переменные, значения которых определяют среду, в которой выполняются команда или пакетный файл. Часто их называют
переменными среды.

Значения, принимаемые этими переменными формируются при
загрузке Windows, регистрации пользователя в системе, старте или завершении
некоторых приложений, и, кроме того, могут быть заданы с помощью специальной
команды
SET

SET переменная=строка

переменная – имя переменной среды. строка – строка символов, присваиваемая указанной
переменной.

Например, командная строка SET myname=Vasyaсоздает переменную myname, принимающую значение Vasya.

Определение доступности ip-адреса

Обычный инструмент ping.exe используется для определения доступности узла сети. Инструмент ожидает ответного пакета после приема ICMP-пакета на проверяемый хост (echo). К сожалению, результат проверки доступности хоста не соответствует значению ERRORLEVEL.

Если в командной строке нет узла и параметры команды верны, ping.exe может в разных версиях Windows установить ERRORLEVEL равным нулю. Говоря иначе, иногда бывает сложно или даже невозможно определить предполагаемый результат выполнения конкретной команды по значению ERRORLEVEL в сценарии.

При пинге доступных и недоступных узлов вы заметите следующие сообщения, если будете внимательны:ping 456.1 – пинг несуществующего адреса

Ответ на такую команду может отличаться от конкретной версии утилиты, и
может быть приблизительно таким

Тест связи не смог найти узел 456.0.0.1; повторите попытку после изменения имени узла.

Определение текущей версии windows.

Чтобы узнать версию операционной системы при запуске командного файла, можно искать определенные фрагменты текста в выводе команды. Существует специальная команда VER, которая выводит информацию о версии ОС в большинстве операционных систем семейства Windows (и даже в DOS).

Microsoft Windows XP [Версия 5.1.2600]

Текст отличается при использовании Windows 7:

Microsoft Windows [Version 6.1.7600]

Функционирование системы в среде Windows 10

Microsoft Windows [Version 10.0.14393]

Таким образом, результат выполнения команды VER в среде разных версий Windows,
всегда содержит определенный текст, характерный только для данной ОС, и задача определения версии решается довольно просто:

Переходы и метки.

В командных файлах можно использовать команды условного перехода,
меняющие логику их работы в зависимости от возникновения определенных условий.
В качестве иллюстрации создадим командный
файл, целью которого будет присвоение заранее определенной буквы для
съемных носителей.

Условия таковы – есть 2 съемных диска, один из которых должен быть виден в проводнике как диск X: а второй – как диск Y: независимо от того, в какой
порт USB они подключены и какие буквы присвоены им операционной системой.
Для примера, будем считать, что реальные диски могут быть подключены как F: или G:

Flashd1.let – первый диск

Flashd2.let – на втором

Таким образом, задача командного файла заключается в том, чтобы проверить
наличие на сменных дисках F: и G: файлов Flashd1.let
или Flashd2.let и, в зависимости от того, какой из них присутствует,
присвоить диску букву X: или Y:

Используйте команду IF EXIST:, чтобы найти файл, если его нет на вашем компьютере.

Имя файла команды IF EXIST

Используйте команду PRO, которая предназначена для сопоставления каталогов и виртуального диска, для запуска команды SUBST.

SUBST X: C: – – создать виртуальный диск
X:, содержимым которого будет корневой каталог диска C:

   
Для решения поставленной задачи, создаем командный файл, например с именем setletter.bat, следующего содержания:

Поиск в локальной сети включенных компьютеров.

Этот пример демонстрирует, как создать командный файл, позволяющий “собрать” список текущих IP-адресов узлов локальной сети. Процесс создания командных файлов не является принципиально новым, но задача поиска включенных узлов в локальной сети довольно типична. Поскольку стандартные настройки брандмауэров содержат очень жесткие правила, запрещающие сетевые соединения извне и ответы на эхо-запросы, не всегда удается решить проблему описанными выше методами с помощью просмотра ping.

Для получения списка включенных сетевых устройств при решении этой задачи необходимо еще определить характерные различия в выходных сообщениях типичной сети коммуникаций.

Программное обеспечение протокола выполняет процедуру определения физического адреса сетевого модуля (MAC) получателя при отправке пакетов протокола IP с одного компьютера на другой сетевой адаптер в локальной сети.

Чтобы узнать, “какой из них соответствует данному IP-адресу”, на все сетевые устройства отправляется широковещательный запрос (который будет подтвержден всеми компьютерами в определенной подсети). Сетевое устройство отправит ARP-ответ на MAC-адрес, если оно определило его IP-адрес.

Запись информации в данную таблицу выполняется только при необходимости передачи любых данных по протоколу IP, что можно инициировать, например, пингованием опрашиваемого устройства. Даже если настройками брандмауэра полностью закрыты все соединения извне и блокируется протокол ICMP ( устройство не «пингуется» ) , в буферной памяти сервиса
ARP будет присутствовать запись соответствия IP и MAC, если устройство было подключено к локальной сети и участвовало в процедуре разрешения адреса .

Вы можете использовать эту команду, чтобы посмотреть, что находится в кэше ARP.

A RP -a отобразить все записи в таблице arp

A RP Пример отображения таблицы API:

Интерфейс: 192.168.0.29 — 0xa

Физический адрес в Интернете

192.168.0.1 00-1e-13,d6 80-00 динамический

192.168.0.3 60-eb-69-08-18-d2 динамический

. . .

Интерфейс: 192.168.234.1 — 0xf

Физический адрес в Интернете

192.168.234,255 ff-f-132-233 статический

Введите значение для поиска

224.0.0252 01-00-5e-fc статический

239.255,250 01-00-5e-7f-ff динамик

Если посмотреть на эту таблицу, можно увидеть, что физический адрес сетевого адаптера, который имеет формат 00-1e-13-00-30, соответствует IP-адресу 192.168.0.1. В таблице не будет записи, если сетевой адаптер с таким адресом недоступен.

Чтобы понять алгоритм исследования сети, вам следует подумать о следующем:

Только IP-передачи в пределах сегмента локальной сети, указанного маской, используют разрешение адресов ARP. Например, это будет диапазон от 1 до 195.2 для IP-адреса 192.168.0.1 и маски 255-256.0.

:/>  Как узнать характеристики компьютера и ноутбука?

Поиск компьютеров с запущенным приложением

Утилита tasklist является стандартным компонентом операционных систем Windows XP и более поздних версий и позволяет пользователям просматривать список всех активных в данный момент процессов. Она может достаточно эффективно искать активные программы как на локальном, так и на удаленном компьютере.

Также, можно воспользоваться вспомогательной утилитой PSList.exe из пакета PSTools от Microsoft Sysinternals. Обе утилиты можно использовать для поиска
приложений, выполняющихся на локальном или удаленном компьютере, но PSlist имеет более простой функционал, менее известна среди компьютерных специалистов и выбрана в качестве средства решения поставленной задачи.

Поиск компьютеров с запущенным приложением по списку

В предыдущем примере использовался прямой перебор IP-адресов компьютеров в
локальной сети, что не всегда эффективно, поскольку в процедуру опроса могут быть
вовлечены и выключенные компьютеры. Решим задачу другим способом – создадим текстовый
файл со списком компьютеров и опросим их по этому списку.

Список можно получить из сетевого окружения с использованием команды:
net.exe view > comps.txt
После выполнения такой команды файл
comps.txt
будет содержать список
следующего вида:

Адресная строка сервера Notes содержит 2 пустые строки.

   
Обрабатывать содержимое этого текстового файла будем с помощью команды
FOR
с ключом /F:

FOR /F [“ключи”] %переменная IN (имя файла) DO команда [параметры]

Данная команда позволяет получить доступ к строкам в текстовом файле с использованием ключей:skip=n                 – пропустить n строк от начала файла (в нашем примере – 4 строки)eol=< символ >  – не использовать строки, начинающиеся с заданного символа.
(в нашем случае – пропустить последнюю строку, начинающуюся с кириллического символа “К” – “Команда выполнена успешно”tokens=n             – брать для обработки n-е слово в строке (в нашем случае – 1-е слово)

Кончательный вид команды:

Примеры использования утилиты touch.exe в командной строке windows:

Если файл еще не существует, он будет создан с нулевой длиной и текущим временем создания или доступа, используя команду touch C:foldermyfile.txt для изменения времени доступа и модификации файла C:FordERMillipinth на текущее.

8 марта, 1:02:30 C-folder – установить текущую дату или время обновления в качестве значения даты и времени модификации для уже существующей папки “C’FOLER”?

Присвоение съемному диску одной и той же буквы.

Задача заключается в том, чтобы съемный USB диск (флэш диск) был доступен
всегда под одной и той же буквой, независимо от того, на каком компьютере он
используется и каким образом он был подключен. Для ее решения воспользуемся уже упоминаемой выше командой SUBST, но реализуем присвоение новой буквы диску с
помощью подстановочного значения переменной %0, создаваемой
системой при каждом запуске командного файла.

Выберите X для обозначения съемного диска.

Некоторые из переменных окружения, в том числе и переменная %0,
принимающая значение пути и имени выполняющегося командного файла, позволяют
при определенной модификации с использованием специального признака –
символа ” ~ “, получить ее частичное значение (расширение переменной).

Работа с графическими приложениями windows.

Допустим, вам нужно из одного и того же командного файла запустить notepad.exe
и cmd.exe. Если просто вставить строкиnotepad.execmd.exeто после запуска notepad.exe выполнение командного файла приостановится и пока не
будет завершен notepad, cmd.exe не запустится.

start /MAX notepad.exestart “This is CMD.EXE” /MIN cmd.exenet send %COMPUTERNAME% NOTEPAD and CMD running.

После выполнения этого командного файла вы увидите стартовавшие, в развернутом окне
(ключ /MAX) блокнот, в свернутом окне (ключ /MIN) командный процессор CMD.EXE и
окно с сообщением net.exe. Стандартный заголовок окна cmd.exe заменен на текст
“This is CMD.EXE”.

Обратите внимание на то что заголовок окна можно опускать, но
особенность обработки входных параметров командой start может привести к
неожиданным результатам при попытке запуска программы, имя или путь которой содержит
пробел(ы). Например при попытке выполнить следующую команду:start “C:

Program FilesFARFAR.EXE”Из-за наличия пробела в пути к исполняемому файлу,
строка для запуска FAR.EXE должна быть заключена в двойные
кавычки, однако формат входных параметров для start предполагает наличие заголовка
окна, также заключаемого в двойные кавычки, в результате чего “C:

   

Если вам все же потребуется расширенное управление окнами приложений,
придется воспользоваться сторонним программным обеспечением, например, широко известная утилита cmdow.exe

Версия cmdow.zip, использованная для создания этой статьи, представляет собой IP-архив, защищенный паролем.

Работа с дисками, файлами и каталогами.

Задача – определить буквы дисков, присутствующих в системе и записать результат в файл с
именем tstdsk.txt текущего каталога. Можно воспользоваться выполнением команды IF EXIST в цикле FOR для набора из букв латинского алфавита, т.е
для каждой буквы диска проверить наличие корневого каталога командой

IF EXIST буква диска:

Потом создаем пустой файл:

Скопировать nul tstdsk.txt.

Если файл не существует, этого делать не нужно. С другой стороны, результаты удваиваются от предыдущего выполнения командного файла и добавляются ко второму концу файла. Команда copy nul tstdsk.txT опустошит файл, установив размер данных равным нулю.

Командный файл будет выглядеть следующим образом:

Часто встречающиеся ошибки при написании командных файлов.

  • Командный файл вручную выполняется успешно, но запущенный с помощью планировщика не работает.

Обычно это происходит потому, что при выполнении командного файла переменные среды могут быть совершенно другими. Если в командном файле используется имя исполняемого модуля без полного пути к приложению myprog.exe, которое находится в каталогах SCRIPTS на диске D:

Модуль MM-prog. EXE может быть найден и выполнен, только если текущий раздел сайта – CCSRipt, если каталог D:SCRIPTS не указан в путях поиска (переменная PATH). Однако, если указать полный путь к myprog.exe, программа всегда будет найдена и выполнена.

Кроме того, программа в командном файле имеет доступ к собственному каталогу для поиска своих компонентов dll, ini и т.д. Однако текущий каталог во время ее выполнения может быть любым (обычно это системный каталог). Естественно, программа отсутствует, а компоненты нигде не найдены.

Измените диск на D:Rem, затем перейдите в каталог, где находится SCRIPTSmyprog.exe.

В разделе сайта “Список команд Windows” есть описание использования команд pushd и popd, которые можно использовать для навигации по каталогам.

Имена файлов, служб и т.д. на русском языке отображаются некорректно

Причина в том, что при создании командных файлов вы
использовали текстовый редактор, в котором русские символы представлены
не в DOS-кодировке. Если в приведенном выше примере перезапуска службы “DNS-клиент”
вы используете неверную кодировку, то русская часть имени службы не будет опознана
из-за неверной кодировки и будет выдано сообщение, что указанная служба не
установлена.

Чтобы избежать проблем с русскими символами в командных файлах,
используйте редактор с поддержкой DOS-кодировки, например, встроенный редактор
файлового менеджера Far Manager. Переключение между кодировками в редакторе осуществляется нажатием F8 .

Существует командный файл, который работает на одном компьютере и не работает на другом.

Обычно это вызвано применением в командных файлах абсолютных значений для дисков, файлов и каталогов вместо переменных среды окружения. Вместо C:WINDOWS правильнее использовать %SYSTEMROOT%, потому,
что на другом компьютере система может быть установлена в другой каталог или на другой диск.

    Строки с переменными, принимающими значения имен файлов и каталогов лучше
заключать в кавычки. Командная строка

DIR %ProgramFiles%

не выдаст вам содержимого каталога C:Program Files , поскольку из-за наличия пробела будет
интерпретирована как

Программа в DIR C

Опция командной строки DIR “%ProgramFiles” будет выполнена правильно.

    Старайтесь использовать команды Setlocal и Endlocal, чтобы не оставлять мусор
из переменных, созданных или модифицированных командным файлом.

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

   
Командные файлы
удобно использовать для выполнения каких-либо
действий при регистрации пользователя в
домене. Делается это с помощью вкладки
Profile

Что такое свойства пользователя домена.

Сами командные файлы должны
находиться в сетевой папке
Netlogon
(WINDOWSSYSVOL DOMAINSCRIPTS) контроллера домена.

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

Дополнительные ресурсы для командной строки Windows

Раздел со списком команд
CMD Windows. Имена большинства команд представляют собой ссылку на
страницы с их описанием и примерами.

Настройка окна командной строки
Windows. Малоизвестные возможности по изменению свойств консоли Windows.

Работа с сетью в
командной строке Windows – Описание и примеры использования
утилит командной строки для работы с сетью.

Запуск командных файлов от имени администратора без запроса UAC – использование планировщика заданий для запуска приложений
от имени Администратора без запроса системы контроля учетных записей UAC.

Методы, наиболее часто используемые при работе со специализированными инструментами, применяются к командной строке Windows.

Нажмите кнопку “Поделиться”, чтобы разместить ссылку на эту страницу в своей социальной сети.

В начало страницы         |        
На главную страницу сайта

Оставьте комментарий

Adblock
detector