Разное

Работа с переменными cmd: Урок 3 по CMD — работа с переменными

Содержание

Урок 3 по CMD — работа с переменными






Объявление собственных переменных является неотъемлемой часть практически любого языка программирования, так в языке vbscript они объявляются с помощью ключевого слова dim, а в jscript – используется ключевое слово var.

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

set Var1=D:\Work
set Var2=100
set Var3="Привет Мир!!!"

В данном примере, с помощью ключевого слова cmd set мы поэтапно объявили три переменные (Var1, Var2 и Var3), как и в языке vbscript, в cmd регистр символов не играет роли, поэтому, данные строчки выведут фразу «Привет Мир!!!»

set Var3
set VAR3
set vAr3

или

echo %Var3%
echo %VAR3%
echo %vAr3%

Стоит учитывать один момент, запись

и

это не одно и тоже, то есть, в первом случае мы создаем cmd переменную «var1», а во втором – «var1 «. С присвоением значений аналогичная ситуация, так что обращайте внимание на пробел!!!

Видим, что бы вывести значение переменной с помощью функции Echo, мы заключаем ее в символ «%», для set – просто прописываем ее имя, так же стоит учитывать, что всем переменным присваивается строковой тип.

Если вы запустите на выполнение команду cmd set, которая выводит список всех переменных и их значений в текущем сеансе, то увидите, что там будут присутствовать и только что созданные cmd переменные и переменные среды. Мы сможем обращаться к ним на протяжение всего сеанса работы.






Что бы очистить переменные в командной строке Windows от их содержимого, нужно просто присвоить пустое значение:

Мы просто после имени прописали знак равенства и все. Стоит помнить, что если в таких языках программирования как vbscript и jscript присвоение пустого значения переменной не влияет на ее существование, то в командной строке происходит полное ее удаление, то есть, команда:

просто выведет строчку %Var3%, а команда

Выведет сообщение «переменная среды var3 не определена«

Стоит учитывать тот момент, что если мы хотим, что бы переменная командной строки Windows содержала специальные символы (например, @ < > & | ^ ), то их нужно экранировать.  В языке jscript для вывода специальных символов используются esc-последовательности, в командной строке специальный символ экранируется с помощью «^»:

set Var4=100 ^& 3 = 5
set Var5=100 ^^3

В данном примере мы экранировали символы & и ^, тем самым присвоив фразы:

«100 & 3 = 5»
«100 ^3»

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

Получим предупреждение:

100
«3» не является внутренней или внешней командой, исполняемой программой или командным файлом.

Это происходит из-за повторного анализа спец-символов при использовании функции echo. Надо просто прописать символ «^» экранирования не один раз, а трижды:

set Var4=100 ^^^& 3 = 5
set Var5=100 ^^^^3

Теперь при выполнении кода:

все пройдет успешно.

Как и в сценариях сервера Windows Script Host, переменные в командной строке Windows могут содержать заданную область видимости.

Область видимости – блок кода, за пределами которого нельзя получить доступ к переменным, объявленным в нем. Довольно ясно значение области видимости проявляется при роботе с функциями, по этому вопросу можете прочить статью «Урок 3 по JScript: Объявление пользовательских функций».

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

Что бы задать локальную область видимости, используется блок SETLOCAL … ENDLOCAL. Все cmd переменные командной строки Windows, объявленные в середине данного блока не будут видны за его пределами. Откройте редактор (я использую редактор Notepad++, так как он сразу подсвечивает код), и пропишите в нем следующие строчки кода:

@echo off
set var1=0
rem Начало локализации
setlocal
set var1=5
echo Lokalnaya: var1= %var1%
endlocal
 
echo Globalnaya: var1= %var1%

Видим, что вначале мы объявили var1 и присвоили ей значение 0, далее мы снова объявили переменную с аналогичным именем, но уже в блоке SETLOCAL … ENDLOCAL. В сценарии происходит вывод значения как локальной, так и глобальной var1. Я специально использовал латинские знаки, что бы у вас в случае чего не выводились крякозябры.








отображение и изменение переменных среды окружения Windows











&nbsp &nbsp
Команда SET используется для просмотра и изменения переменных среды окружения в командной строке Windows. Переменные окружения — это переменные, принимаемые значения которых характеризуют среду, в которой выполняется текущая программа — пути системных файлов, сведения об аппаратных средствах, каталоги пользователя и т.п. Значения переменных среды формируются в процессе загрузки Windows, регистрации пользователя в системе, при выполнении отдельных процессов или с помощью команды SET. Для просмотра значения, принимаемого конкретной переменной можно воспользоваться командой :

SET переменная
SET PATH — отобразить значение переменной PATH

Для создания новой переменной, или изменения значения существующей, используется команда :

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

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

SET MyName=Vasya — установить значение переменной MyName

SET path=C:\progs;%path% — изменить значение переменной PATH, добавив в начало строки C:\progs

Значение, принимаемое переменной , доступно для обработки в командных файлах, при использовании ее имени, заключенного в знаки процента — % . Например команда выдачи текста на дисплей ECHO в виде:

ECHO date — выведет на экран слово «date», а команда
ECHO %date% выведет на экран значение переменной date, т.е. текущую дату в формате операционной системы.

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



ALLUSERSPROFILE=C:\ProgramData

APPDATA=C:\Users\Usr\AppData\Roaming

CommonProgramFiles=C:\Program Files\Common Files

COMPUTERNAME=TEST7

ComSpec=C:\windows\system32\cmd.exe

FP_NO_HOST_CHECK=NO

HOMEDRIVE=C:

HOMEPATH=\Users\Usr

LOCALAPPDATA=C:\Users\Usr\AppData\Local

LOGONSERVER=\\TEST7

NUMBER_OF_PROCESSORS=2

OS=Windows_NT

Path=C:\windows\system32;C:\windows;

PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS; .VBE;.JS;.JSE;.WSF;.WSH;.MSC

PROCESSOR_ARCHITECTURE=x86

PROCESSOR_IDENTIFIER=x86 Family 15 Model 3 Stepping 4, GenuineIntel

PROCESSOR_LEVEL=15

PROCESSOR_REVISION=0304

ProgramData=C:\ProgramData

ProgramFiles=C:\Program Files

PROMPT=$P$G

PSModulePath=C:\windows\system32\Windows PowerShell\v1.0\Modules\

PUBLIC=C:\Users\Public

SystemDrive=C:

SystemRoot=C:\windows

TEMP=C:\Users\Usr\AppData \Local\Temp

TMP=C:\Users\Usr\AppData \Local\Temp

USERDOMAIN=test7

USERNAME=Usr

USERPROFILE=C:\Users\Usr

windir=C:\windows

Кроме переменных, отображаемых в списке, при вызове команды SET, существуют и другие,
значения которых изменяется динамически:

%CD% — принимает значение текущего каталога.
%DATE% — принимает значение текущей даты.
%TIME% — принимает значение текущего времени.
%RANDOM% — значение случайного числа в диапазоне между 0 и 32767.
%ERRORLEVEL% — текущее значение ERRORLEVEL, специальной переменной, которая используется в качестве признака результата выполнения программы.
%CMDEXTVERSION% значение версии расширенной обработки команд CMD.EXE.
%CMDCMDLINE% — раскрывается в исходную командную строку, которая вызвала
командный процессор .

Если при вызове команды SET указать только часть имени, то будет выведен список переменных, имена которых начинаются с указанной строки. Например:

SET U — выведет значения всех переменных, имена которых начинаются с ‘U’.

Команда SET поддерживает два дополнительных ключа:

SET /A выражение

SET /P variable=[promptString]

Ключ /A указывает, что строка справа от знака равенства является числовым
выражением, значение которого вычисляется. Обработчик выражений очень
прост и поддерживает следующие операции, перечисленные в порядке убывания
приоритета:



()

* / %

+ —
>

&

^

|

=

,

— группировка

— арифметические операторы

— арифметические операторы

— двоичный сдвиг

— двоичное И

— двоичное исключающее ИЛИ

— двоичное ИЛИ

— присвоение

— разделитель операторов

При использовании любых логических или двоичных операторов необходимо
заключить строку выражения в кавычки. Любые нечисловые строки в выражении
рассматриваются как имена переменных среды, значения которых преобразуются
в числовой вид перед использованием. Если переменная с указанным именем
не определена в системе, вместо нее подставляется нулевое значение. Это
позволяет выполнять арифметические операции со значениями переменных среды,
причем не нужно вводить знаки % для получения значений. Если команда
SET /A вызывается из командной строки, а не из пакетного файла, она выводит
окончательное значение выражения. Слева от любого оператора присваивания
должно стоять имя переменной среды. Числовые значения рассматриваются как
десятичные, если перед ними не стоит префикс:

0x — для шестнадцатеричных чисел
0 — для восьмеричных чисел.

Пример использования префиксов:


SET /A REZ=0xA+012

ECHO %REZ%

В данном командном файле значение переменной REZ вычисляется сложением числа
10, представленного в шестнадцатеричном виде ( 0xA ) и числа 10 , представленного в восьмеричном ( 012 ).

Ключ /P позволяет установить значение переменной для входной строки, введенной
пользователем. Показывает указанное приглашение promptString перед чтением
введенной строки. Приглашение promptString может быть пустым. Данный ключ позволяет организовать диалог с пользователем в командном файле:


@ECHO OFF

SET /P NAME=Введите имя пользователя:

SET /P pass=Введите пароль:

ECHO Имя пользователя — %NAME% , Пароль — %PASS%

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

переменная:строка1=строка2 — заменяет в принимаемом значении переменной строку1 на строку2

Следующий командный файл использует замену символа «точка» на символ «тире» в значении
переменной, соответствующем текущей дате:


@ECHO OFF

set tm=%DATE%

ECHO Дата1 = %tm%

SET tm=%DATE:.=-%

ECHO Дата2 = %tm%

Для выделения части значения, принимаемого переменной, используется следующая конструкция:

переменная:~x,y — где x — число пропускаемых символов от начала строки, а y — количество символов, используемых в качестве значения переменной.

Следующий пример использует отображение текущего времени без секунд и долей секунд (только первые 5 символов из стандартного значения переменной TIME):


@ECHO OFF

set tm=%TIME%

ECHO Время1 = %tm%

SET tm=%TIME:~0,5%

ECHO Время2 = %tm%

Если значение y ( длина ) не указана, то используется оставшееся до конца строки
значение переменной. Если значение y отрицательно, то используется часть строки значения переменной от конца. Предыдущий пример можно изменить , указав, что в
принимаемом значении времени отбрасываются 6 символов от конца:


@ECHO OFF

set tm=%TIME%

ECHO Время1 = %tm%

SET tm=%TIME:~0,-6%

ECHO Время2 = %tm%

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

%PATH:~-10% — извлечет последние 10 символов переменной PATH

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

%PATH:~0,-2% эквивалентно %PATH:~,-2%



При использовании переменных окружения в командных файлах существует определенное ограничение, связанное с тем фактом, что присваиваемое значение остается без изменения при его модификации внутри группы команд, задаваемой скобками, например в командах IF или FOR . Для обхода данного ограничения используется запуск командного процессора с параметром /V:ON и вместо знаков процента, для получения принимаемого переменной значения, используются восклицательные знаки. Кроме того, существует возможность использовать стандартный запуск командного процессора, но с локальным включением данного режима командой :

Setlocal EnableDelayedExpansion

Разница в результатах использования значений переменных довольно наглядно
демонстрируется следующим командным файлом:


Setlocal EnableDelayedExpansion

@ECHO OFF

set VAR=before

if «%VAR%» == «before» (

set VAR=after

if «!VAR!» == «after» @echo Со знаком процента=%VAR% , Со знаком вопроса=!VAR!

)



Команда set VAR=after выполняется внутри подпрограммы, ограниченной
скобками и, если убрать команду Setlocal EnableDelayedExpansion или
не использовать для получения значения переменной VAR восклицательные знаки, ее значение останется старым ( тем, что было установлено до входа в подпрограмму ). Аналогичная же проблема наблюдается и тогда, когда значение переменной изменяется внутри цикла команды FOR.
Например, для получения списка файлов текущего каталога такой командный файл не будет работать:


set LIST=

for %%i in (*) do set LIST=%LIST% %%i

echo %LIST%

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


Setlocal EnableDelayedExpansion

set LIST=

for %%i in (*) do set LIST=!LIST! %%i

echo %LIST%



Теперь, значение переменной LIST внутри цикла FOR будет
изменяться, последовательно принимая значения имен файлов, разделенных
пробелом ( set LIST=!LIST! %%i)





Весь список команд CMD Windows

set | Microsoft Docs



  • Чтение занимает 3 мин

В этой статье

Отображает, устанавливает или удаляет переменные среды cmd.exe.Displays, sets, or removes cmd.exe environment variables. Если используется без параметров, Set отображает текущие параметры переменной среды.If used without parameters, set displays the current environment variable settings.

Примечание

Для этой команды требуются расширения команд, которые включены по умолчанию.This command requires command extensions, which are enabled by default.

Команда Set также может запускаться из консоли восстановления Windows с использованием различных параметров.The set command can also run from the Windows Recovery Console, using different parameters. Дополнительные сведения см. в разделе Среда восстановления Windows (WinRE).For more information, see Windows Recovery Environment (WinRE).

СинтаксисSyntax

set [<variable>=[<string>]]
set [/p] <variable>=[<promptString>]
set /a <variable>=<expression>

ПараметрыParameters

ПараметрParameterОписаниеDescription
<variable>Задает переменную среды, которую необходимо задать или изменить.Specifies the environment variable to set or modify.
<string>Указывает строку, связываемую с указанной переменной среды.Specifies the string to associate with the specified environment variable.
/p/pПрисваивает значение <variable> строке ввода, введенному пользователем.Sets the value of <variable> to a line of input entered by the user.
<promptstring>Указывает сообщение, предлагающее пользователю ввести данные.Specifies a message to prompt the user for input. Этот параметр должен использоваться с параметром /p .This parameter must be used with the /p parameter.
/a/aЗадает <string> числовое выражение, которое вычисляется.Sets <string> to a numerical expression that is evaluated.
<expression>Задает числовое выражение.Specifies a numerical expression.
/?/?Отображение справки в командной строке.Displays help at the command prompt.
КомментарииRemarks
  • Если расширения команд включены (по умолчанию) и вы запускаете Set со значением, отображаются все переменные, которые начинаются с этого значения.If command extensions are enabled (the default) and you run set with a value, it displays all of the variables that begin with that value.

  • Символы < ,, > , | & и ^ являются специальными символами командной оболочки и перед ними должны начинаться escape-символом ( ^ ) или заключены в кавычки (например <string> , «стрингконтаининг&Symbol»).The characters <, >, |, &, and ^ are special command shell characters, and they must be preceded by the escape character (^) or enclosed in quotation marks when used in <string> (for example, «StringContaining&Symbol»). Если строка, содержащая специальный символ, заключена в кавычки, кавычки необходимо указывать как часть значения переменной среды.If you use quotation marks to enclose a string that contains one of the special characters, the quotation marks are set as part of the environment variable value.

  • Используйте переменные среды для управления поведением некоторых пакетных файлов и программ, а также для управления отображением окон и подсистемы MS-DOS.Use environment variables to control the behavior of some batch files and programs and to control the way Windows and the MS-DOS subsystem appears and works. Команда Set часто используется в файле Autoexec. NT для задания переменных среды.The set command is often used in the Autoexec.nt file to set environment variables.

  • Если вы используете команду Set без параметров, отображаются текущие параметры среды.If you use the set command without any parameters, the current environment settings are displayed. Эти параметры обычно включают переменные среды ComSpec и path , которые используются для поиска программ на диске.These settings usually include the COMSPEC and PATH environment variables, which are used to help find programs on disk. В Windows используются две другие переменные среды: Prompt и DIRCMD.Two other environment variables used by Windows are PROMPT and DIRCMD.

  • Если заданы значения для <variable> и <string> , указанное <variable> значение добавляется в среду и <string> связывается с этой переменной.If you specify values for <variable> and <string>, the specified <variable> value is added to the environment and <string> is associated with that variable. Если переменная уже существует в среде, новое строковое значение заменяет старое.If the variable already exists in the environment, the new string value replaces the old string value.

  • Если указать только переменную и знак равенства (без <string> ) для команды Set , <string> значение, связанное с переменной, будет очищаться (как если бы переменная отсутствует).If you specify only a variable and an equal sign (without <string>) for the set command, the <string> value associated with the variable is cleared (as if the variable is not there).

  • При использовании параметра /a поддерживаются следующие операторы в порядке убывания приоритета.If you use the /a parameter, the following operators are supported, in descending order of precedence:

    ОператорOperatorВыполненная операцияOperation performed
    ( )ГруппированиеGrouping
    ! ~ -УнарныйUnary
    * / %АрифметическиеArithmetic
    + -АрифметическиеArithmetic
    << >>Логическая сменаLogical shift
    &Побитовое ИBitwise AND
    ^Побитовое исключающее ИЛИBitwise exclusive OR
    = *= /= %= += -= &= ^== <<= >>=
    ,Разделитель выраженийExpression separator
  • Если используются операторы логического ( && или || ) или модуля ( % ), заключите строку выражения в кавычки.If you use logical (&& or ||) or modulus (%) operators, enclose the expression string in quotation marks. Все нечисловые строки в выражении считаются именами переменных среды, и их значения преобразуются в числа до их обработки.Any non-numeric strings in the expression are considered environment variable names, and their values are converted to numbers before they are processed. Если указать имя переменной среды, которое не определено в текущей среде, то выделяется нулевое значение, что позволяет выполнять арифметические операции со значениями переменных среды без использования% для получения значения.If you specify an environment variable name that is not defined in the current environment, a value of zero is allotted, which allows you to perform arithmetic with environment variable values without using the % to retrieve a value.

  • При запуске set/a из командной строки за пределами командного скрипта отображается конечное значение выражения.If you run set /a from the command line outside of a command script, it displays the final value of the expression.

  • Числовые значения — это десятичные числа, кроме префикса 0 × для шестнадцатеричных чисел или 0.Numeric values are decimal numbers unless prefixed by 0× for hexadecimal numbers or 0 for octal numbers. Таким образом, 0 × 12 совпадает с 18, что совпадает с 022.Therefore, 0×12 is the same as 18, which is the same as 022.

  • Отложенная поддержка расширения переменных среды по умолчанию отключена, но ее можно включить или отключить с помощью команды cmd/v.Delayed environment variable expansion support is disabled by default, but you can enable or disable it by using cmd /v.

  • При создании пакетных файлов можно использовать команду Set для создания переменных, а затем использовать их так же, как и пронумерованные переменные %0%9.When creating batch files, you can use set to create variables, and then use them in the same way that you would use the numbered variables %0 through %9. Можно также использовать переменные %0%9 в качестве входных данных для Set.You can also use the variables %0 through %9 as input for set.

  • При вызове значения переменной из пакетного файла заключите значение в знаки процента ( % ).If you call a variable value from a batch file, enclose the value with percent signs (%). Например, если программа пакетной службы создает переменную среды с именем бод, можно использовать строку, связанную с параметром бод , в качестве заменяемого параметра, введя % бод% в командной строке.For example, if your batch program creates an environment variable named BAUD, you can use the string associated with BAUD as a replaceable parameter by typing %baud% at the command prompt.

ПримерыExamples

Чтобы задать переменную среды с именем Test ^ 1, введите:To set an environment variable named TEST^1, type:

set testVar=test^^1

Команда Set назначает значение переменной всем, что следует за знаком равенства (=).The set command assigns everything that follows the equal sign (=) to the value of the variable. Поэтому при вводе set testVar=test^1 вы получите следующий результат: testVar=test^1 .Therefore, if you type set testVar=test^1, you’ll get the following result, testVar=test^1.

Чтобы задать переменную среды с именем TEST&1, введите:To set an environment variable named TEST&1, type:

set testVar=test^&1

Чтобы задать переменную среды с именем include , с которой связана строка к:\директори , введите:To set an environment variable named INCLUDE so the string c:\directory is associated with it, type:

set include=c:\directory

Затем можно использовать строку к:\директори в пакетных файлах, заключив имя в символы процента ( % ).You can then use the string c:\directory in batch files by enclosing the name INCLUDE with percent signs (%). Например, можно использовать dir %include% в пакетном файле для вывода содержимого каталога, связанного с переменной среды include.For example, you can use dir %include% in a batch file to display the contents of the directory associated with the INCLUDE environment variable. После обработки этой команды строка к:\директори заменяет % include%.After this command is processed, the string c:\directory replaces %include%.

Чтобы использовать команду Set в пакетной программе для добавления нового каталога в переменную среды path , введите:To use the set command in a batch program to add a new directory to the PATH environment variable, type:

@echo off
rem ADDPATH.BAT adds a new directory
rem to the path environment variable.
set path=%1;%path%
set

Чтобы отобразить список всех переменных среды, начинающихся с буквы P, введите:To display a list of all of the environment variables that begin with the letter P, type:

set p

Дополнительные ссылкиAdditional References

Работа с переменными окружения в командной строке (CMD)

Смотрите также «Полный список переменных окружения Windows».

Как вывести все переменные окружения в командной строке

Чтобы показать все переменные окружения и их значения в командной строке используйте команду:


SET

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


SET | more

Для сохранения вывода в файл:


SET > output.txt

Этот текстовый файл output.txt можно открыть в любом редакторе, например в Notepad.

Как показать значение переменной в CMD

Для показа значения переменной используйте знакомую команду set:


set ПЕРЕМЕННАЯ

Например:


set PATH

Команда set выводит значение всех переменных, которые начинаются на строку ПЕРЕМЕННАЯ. К примеру, предыдущая команда выведет значение переменных PATH и PATHEXT.

А следующая команда выведет значения всех переменных, чьё имя начинается на P:


set P

Как установить значение переменной

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

В после выполнения этой команды вам будет показано приглашение командной строки для ввода значения переменной:


SET /P ПЕРЕМЕННАЯ=

Например:


SET /P variable=

Второй вариант:


SET /P ПЕРЕМЕННАЯ=ЗАПРОС

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


SET /P variable=Ведите значение:

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


%PATH:str1=str2%

расширит действие переменной среды PATH, заменяя каждое вхождение «str1» в расширенном результате на «str2». «str2» может быть пустой строкой для эффективного удаления вхождений «str1» из расширенного вывода. «str1» может начинаться со звёздочки, и в этом случае это будет соответствовать любому началу расширенного вывода до первого вхождения оставшейся части «str1».

Как удалить переменную

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


SET ПЕРЕМЕННАЯ=

В результате будет полностью удалена ПЕРЕМЕННАЯ. Обратите внимание, что используется знак равенства, но в отличие от предыдущей команды, не используется флаг /P. Поэтому значение не просто становится равным пустой строке, а происходит удаление переменной целиком.

Связанные статьи:

Использование переменных среды в Командной строке (Cmd.exe)

Переменные устанавливают среду Cmd.exe. Они прописывают не только особенности поведения командной оболочки, но и самой ОС. Переменные следует подразделить на два вида, каждый из которых обладает уникальными свойствами: системные и локальные. Первый вид позволяет задать поведение глобальной среды ОС в процессе осуществления работы. Локальные переменные устанавливают деятельность среды исключительно в определенном экземпляре Cmd.exe. Это требуется отметить в качестве ключевого отличия.

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

Ниже будет представлен перечень существующих классов переменных на основании важности их приоритета (по убыванию):

  • Встроенные системные. Их необходимо назвать наиболее серьёзными, что предусматривает особое внимание в процессе работы.
  • Переменные системного вида, относящиеся к HKEY_LOCAL_MACHINE.
  • Переменные локального вида, относящиеся к HKEY_CURRENT_USER.
  • Полный перечень переменных и сред, находящихся в документе Autoexec.bat.
  • Полный перечень переменных и сред, находящихся в сценарии начала работы системы. В определенных ситуациях его может и не быть.
  • Интерактивно применяемые переменные для прописанного сценария или пакетного документа.

Существует довольно продолжительный список переменных, относящихся к локальной или системной категории. Необходимо уделить подобному вопросу больше внимания.

Локальные переменные

Название Информация

%ALLUSERSPROFILE%

Предоставляет сведения о том, где именно находится профиль All Users

%APPDATA%

Предоставляет место нахождения программ, устанавливаемое по умолчанию

%CD%

Позволяет получить путь до используемой папки

%CMDCMDLINE%

Предоставляет строчку команд, с применением которой произведена работа текущего экземпляра Cmd.exe

%LOGONSEVER%

Предоставляет название контроллера домена, осуществляющего проверку подлинности заданной сессии

%PROMPT%

Позволяет выполнить предоставление параметров КА для действующего интерпретатора. Для получения доступа, необходимо воспользоваться Cmd.exe

%USERDOMAIN%

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

%USERNAME%

Предоставляет имя юзера, осуществившего вход в систему

%USERPROFILE%

Осуществляет возврат положения аккаунта для текущего юзера

Системные переменные

%CMDEXTVERSION%

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

%COMPUTERNAME%

Предоставляет название устройства, на котором производится работа

%COMSPEC%

Осуществляет выдачу пути к исполняемой командной оболочке

%DATE%

Предоставляет действующие сведения. Следует отметить тот факт, что предусматривается применение формата, аналогичного date /t. Все сведения об указанной команде можно получить непосредственно из соответствующего раздела на сайте

%ERRORLEVEL%

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

%HOMEDRIVE%

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

%HOMEPATH%

Выполняет предоставление пути до главного каталога юзера. Следует устанавливать за счет сведений о нахождении главного каталога

%HOMESHARE%

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

%NUMBER_OF_PROCESSORS%

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

%OS%

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

%PATH%

Устанавливает путь поиска для того, чтобы обнаруживать программы

%PATHEXT%

Предоставляет перечень расширений документов, учитываемых ОС в качестве исполняемых

%PROCESSOR_ARCHITECTURE%

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

%PROCESSOR_IDENTFIER%

Предоставляет короткую информацию о процессоре

%PROCESSOR_LEVEL%

Предоставляет данные о номере модификации процессора

%RANDOM%

Предоставляет любое целое число в диапазоне 0-32767 включительно

%SYSTEMDRIVE%

Выполняет предоставление названия диска, на который записан корневой каталог ОС Windows XP

%SYSTEMROOT%

Предоставляет место расположения системного каталога ОС

%TEMP% и %TMP%

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

%TIME%

Предоставляет сведения о времени на данный момент. Применяется аналогичный time /t формат отображения.

%WINDIR%

Позволяет осуществить возврат каталога ОС

Задание переменных среды

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

Для выдачи конкретной переменной, предусматривается написание в КС:

set название_переменной

Добавление ещё одной переменной осуществляется за счет прописывания:

set variablename=значение

Для выполнения процедуры удаления, стоит прописывать строку:

set название_переменной=

Системой задаётся применение большинства существующих символов для указания в роли значений. Сюда же можно отнести и проделы. Чтобы применять определённые символы, предварительно требуется ввести (^) или осуществить заключение в кавычки. Если этого не сделать, возникнет вероятность неправильного исполнения или ошибки. Необходимо рассмотреть несколько простых примеров. Допустим, нужно создать переменную new&name. Для осуществления поставленной задачи в КС происходит ввод:

set varname=new^&name

Можете попытаться не использовать спецсимвол (^), но это будет невозможно осуществить. Причина заключается в постоянной выдаче одной и той же ошибки.

Когда устанавливается переменная, то не представляет значения, какие именно буквы используются – большие или малые. Регистр не будет приниматься во внимание. Есть одна отличительная особенность – переменная все-равно станет отображаться именно так, как она была введена. Это позволяет облегчить задачу восприятия, если выполнить применение различных регистров для разграничения при написании названий.

Подстановка в переменные среды

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

%название_переменной%

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

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

Бывает так, что написанный Вами 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

(Всего просмотров: 11 688, просмотров сегодня: 1)

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

(командных) файлах, позволяют обходиться без указания абсолютных путей к директориям. Например, если нам заранее неизвестна буква системного диска, мы всегда можем использовать переменную %systemdrive%
, возвращающую букву диска, на котором установлена ОС. Также, переменные применяются для оптимизации кода — многократно повторяющемуся параметру (например, разделе реестра) можно назначить короткую переменную и использовать ее. В данной статье подробно рассматриваются различные приемы работы с переменными, а также способы изменения и создания новых переменных. Теперь обо всем по порядку.

Классификация переменных среды


Справка Windows различает два типа переменных среды: системные и локальные. Системные переменные возвращают одинаковые значения для всех пользователей. К примеру, %systemdrive%
— буква системного диска, и она для всех пользователей одинакова. А вот значения, возвращаемые локальными переменными, варьируются в зависимости от вошедшего в систему пользователя. Например, %userprofile%
может возвращать C:\Documents and Settings\ТекущийПользователь, где ТекущийПользователь — название учетной записи пользователя.

Узнать, какие переменные среды в операционной системе вам доступны и какие значения в данный момент им присвоены, вам поможет команда SET
, запущенная из командной строки без параметров (Пуск – Выполнить – cmd – set
). В рамках данной статьи нас интересуют переменные, обозначающие путь к различным папкам (каталогам). Чуть подробнее о некоторых из них ниже:

Переменная|Тип|Описание
%SYSTEMDRIVE%|Системная|Возвращает имя диска, содержащего корневой каталог операционной системы
Windows XP
/2003 (т. е. системный корневой каталог).
%SYSTEMROOT%, %WINDIR%|Системная|Возвращает размещение корневого каталога операционной системы Windows
/2003
%PATH%|Системная|Указывает путь
поиска
для исполняемых файлов.
%PROGRAMFILES%|Системная|Указывает путь к каталогу установки программ (Program Files)
%COMMONPROGRAMFILES%|Системная|Указывает путь к общему каталогу программ (Program Files\Common Files).
%TEMP% и %TMP%|Системная и пользовательская|Возвращает временные папки, по умолчанию используемые приложениями, которые доступны пользователям, выполнившим вход в систему. Некоторые приложения требуют переменную TEMP, другие — переменную TMP.
%USERPROFILE%|Локальная|Возвращает размещение профиля для текущего пользователя.
%ALLUSERSPROFILE%|Локальная|Возвращает размещение профиля «All Users».
%CD%|Локальная|Возвращает путь к текущей папке.
%APPDATA%|Локальная|Возвращает используемое по умолчанию размещение данных приложений.

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


Начнем с простенького примера:

CMD/BATCH:

DEL /F /Q «%AllUsersProfile%\Главное меню\Активация Windows.lnk»
DEL /F /Q «%AllUsersProfile%\Главное меню\WindowsUpdate.lnk»
DEL /F /Q «%systemroot%\system32\*.scr»

В этом примере я удаляю вышеуказанные ярлыки, которые маячат перед глазами в меню Пуск, используя переменную %AllUsersProfile%
, а также все файлы с расширением SCR из директории Windows\system32, используя переменную %SystemRoot%
. Вместо DEL /F /Q, как вы понимаете, может быть все что угодно: от команды копирования COPY до команды запуска установки нужного нам приложения со всеми параметрами командной строки, если это потребуется.

Во всех командах я специально использовал «кавычки» – это не случайно. Весь путь, включая переменные, надо заключать в кавычки, если вы используете пути, содержащие пробелы. Даже если сама переменная кавычек не содержит, после ее разбора системой в пути могут появится пробелы (например, %ProgramFiles%
в C:\Program Files). В любом случае кавычки лучше использовать – это является хорошим тоном оформления командных файлов.

Как задать свои переменные

Разобранный выше пример использовал уже существующие переменные среды. И вы, вероятно, обратили внимание на символы процентов, окружающие названия переменных. Эти символы нужны для того, чтобы разрешить подстановку значений переменной в командной строке или в пакетном файле. Символы процентов указывают на то, что Cmd.exe должна обратиться к значениям переменных, а не делать посимвольное сравнение. Ниже вы увидите, как это работает. Задать свои переменные в пакетном файле можно командой SET.

Команда SET


Вы можете задать в командном файле свои переменные при помощи все той же команды SET.

Чтобы добавить переменную, введите в командной строке:

Код:

Set имя_переменной=значение

Чтобы отобразить переменную, введите в командной строке:

Код:

Set имя_переменной

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

Код:

Set имя_переменной=

Например,

Код:

SET mydir=D:\Files\Work

задает переменную mydir
, которая будет возвращать путь к указанной папке. Подробнее о команде вы можете прочитать из set /?
.

Важное примечание:
переменные, задаваемые командой set, действуют лишь на протяжении командной сессии (см. ниже), в которой они были заданы.

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

Windows Batch Scripting: Variables — / * steve jansen * /

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

Декларация переменных

DOS не требует объявления переменных. Значение необъявленных / неинициализированных переменных — это пустая строка или "" . Большинству людей это нравится, поскольку
это уменьшает объем кода для написания.Лично мне хотелось бы, чтобы параметр, требующий, чтобы переменная объявлялась перед ее использованием, поскольку это улавливает
глупые ошибки, такие как опечатки в именах переменных.

Присвоение переменной

Команда SET присваивает значение переменной.

  НАБОР foo = bar
  

ПРИМЕЧАНИЕ: Не используйте пробелы между именем и значением; SET foo = bar будет работать , а не , но SET foo = bar будет работать.

Коммутатор / A поддерживает артиметические операции во время назначений.Это полезный инструмент, если вам нужно убедиться, что вводимые пользователем данные являются числовыми значениями.

  НАБОР / Четыре = 2 + 2
4
  

Распространенное соглашение — использовать имена в нижнем регистре для переменных вашего скрипта. Общесистемные переменные, известные как переменные среды, используют имена в верхнем регистре. Эти среды описывают, где найти определенные вещи в вашей системе, например, % TEMP% , который является путем для временных файлов. В DOS регистр не учитывается, поэтому это соглашение не соблюдается, но это хорошая идея, чтобы упростить чтение и устранение неполадок вашего скрипта.

ПРЕДУПРЕЖДЕНИЕ: SET всегда будет перезаписывать (стирать) любые существующие переменные. Рекомендуется убедиться, что вы не перезаписываете общесистемную переменную при написании скрипта. Быстрый ECHO% foo% подтвердит, что переменная foo не является существующей переменной. Например, может возникнуть соблазн назвать переменную «temp», но это изменит значение широко используемой переменной среды «% TEMP%». DOS включает несколько «динамических» переменных окружения, которые ведут себя больше как команды.Эти динамические переменные включают % DATE% , % RANDOM% и % CD% . Было бы плохой идеей перезаписывать эти динамические переменные.

Чтение значения переменной

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

  C: \> УСТАНОВИТЬ foo = bar
C: \> ECHO% foo%
бар
  

Есть несколько особых ситуаций, в которых переменные не используют этот синтаксис % .Мы обсудим эти особые случаи позже в этой серии.

Список существующих переменных

Команда SET без аргументов выведет список всех переменных для текущего сеанса командной строки. Большинство этих переменных будут общесистемными переменными среды, например % PATH% или % TEMP% .

ПРИМЕЧАНИЕ: При вызове SET будут перечислены все обычные (статические) переменные для текущего сеанса. Этот список исключает динамические переменные среды, такие как % DATE% или % CD% .Вы можете перечислить эти динамические переменные, просмотрев конец текста справки для SET, вызываемого вызовом SET /?

Диапазон изменения (глобальный или локальный)

По умолчанию переменные являются глобальными для всего сеанса командной строки. Вызовите команду SETLOCAL , чтобы сделать переменные локальными для области вашего сценария. После вызова SETLOCAL любые присвоения переменных возвращаются после вызова ENDLOCAL , вызова EXIT или когда выполнение достигает конца файла (EOF) в вашем сценарии.

Этот пример демонстрирует изменение существующей переменной с именем foo в сценарии с именем HelloWorld.cmd . Оболочка восстанавливает исходное значение % foo% при выходе из HelloWorld.cmd .

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

Специальные переменные

Есть несколько особых ситуаций, когда переменные работают немного иначе.Аргументы, передаваемые вашему скрипту в командной строке, также являются переменными, но не используют синтаксис % var% . Скорее, вы читаете каждый аргумент, используя один % с цифрой 0–9, представляющей порядковый номер аргумента.
Вы увидите, что этот же стиль позже будет использован для создания функций / подпрограмм в пакетных сценариях.

Существует также синтаксис переменной с использованием ! , например ! Var! . Это особый тип ситуации, называемый отложенным расширением.Вы узнаете больше об отложенном раскрытии в, когда мы будем обсуждать условные выражения (если / то) и циклы.

Аргументы командной строки для вашего сценария

Вы можете прочитать аргументы командной строки, переданные вашему сценарию, используя специальный синтаксис. Синтаксис представляет собой один символ % , за которым следует порядковый номер аргумента из 0 9 . Аргумент с нулевым порядковым номером — это имя самого командного файла. Итак, переменная % 0 в нашем скрипте HelloWorld.cmd будет «HelloWorld.cmd».

Переменные аргумента командной строки:
* % 0 : имя сценария / программы, вызываемого в командной строке; всегда непустое значение
* % 1 : первый аргумент командной строки; пусто, если аргументы не были предоставлены
* % 2 : второй аргумент командной строки; пусто, если не указан второй аргумент
*…:
* % 9 : девятый аргумент командной строки

ПРИМЕЧАНИЕ. DOS поддерживает более 9 аргументов командной строки, однако вы не можете напрямую прочитать 10-й аргумент выше.Это связано с тем, что специальный синтаксис переменных не распознает % 10 или выше. Фактически, оболочка считывает % 10 в качестве постфикса аргумента командной строки % 0 со строкой «0». Используйте команду SHIFT для извлечения первого аргумента из списка аргументов, который «сдвигает» все аргументы на одну позицию влево. Например, второй аргумент сдвигается с позиции % 2 на % 1 , что затем предоставляет 10-й аргумент как % 9 .Позже в этой серии вы узнаете, как обрабатывать большое количество аргументов в цикле.

Уловки с аргументами командной строки

Аргументы командной строки

также поддерживают действительно полезный необязательный синтаксис для запуска квазимакросов для аргументов командной строки, которые являются путями к файлам. Эти макросы
называются поддержкой подстановки переменных и могут разрешать путь, временную метку или размер файла, которые являются аргументом командной строки. Документация для
эту очень полезную функцию найти немного сложно — запустите «FOR /?» и пролистайте страницу до конца вывода.

  • % ~ I ​​ удаляет кавычки из первого аргумента командной строки, что очень полезно при работе с аргументами для путей к файлам. Вам нужно будет указать любые пути к файлам в кавычки, но если указать путь к файлу дважды, это приведет к ошибке «файл не найден».

SET myvar =% ~ I ​​

  • % ~ fI — это полный путь к папке первого аргумента командной строки

  • % ~ fsI то же самое, что и выше, но дополнительная опция s дает DOS 8.3 короткое имя путь к первому аргументу командной строки (например, C: \ PROGRA ~ 1 — это
    обычно вариант с коротким именем 8.3 для C: \ Program Files ). Это может быть полезно при использовании сторонних скриптов или программ, которые не обрабатывают пробелы.
    в путях к файлам.

  • % ~ dpI — это полный путь к родительской папке первого аргумента командной строки. Я использую этот прием почти в каждом командном файле, который пишу, чтобы определить
    где живет сам файл скрипта. Синтаксис SET parent =% ~ dp0 поместит путь к папке для файла сценария в переменную % parent% .

  • % ~ nxI — это просто имя файла и расширение файла первого аргумента командной строки. Я также часто использую этот прием, чтобы определить
    имя сценария во время выполнения. Если мне нужно распечатать сообщения для пользователя, я предпочитаю ставить перед сообщением имя сценария, например
    ECHO% ~ n0: какое-то сообщение вместо ECHO какое-то сообщение . Префикс помогает конечному пользователю, зная, что вывод
    из сценария, а не из другой программы, вызываемой сценарием.Это может показаться глупым, пока вы не потратите часы, пытаясь найти
    тупое сообщение об ошибке, созданное сценарием. Это хороший кусок лака
    Я взял из мира Unix / Linux.

Немного окончательной полировки

Я всегда включаю эти команды в начало своих пакетных скриптов:

  SETLOCAL ENABLE EXTENSIONS
УСТАНОВИТЕ меня =% ~ n0
УСТАНОВИТЬ родительский =% ~ dp0
  

Команда SETLOCAL гарантирует, что после выхода из моего скрипта я не уничтожу никакие существующие переменные.Аргумент ENABLEEXTENSIONS включает очень
полезная функция, называемая расширениями командного процессора. Поверьте, вам нужны расширения командного процессора. Я также храню название скрипта
(без расширения файла) в переменной с именем % me% ; Я использую эту переменную в качестве префикса для любых печатных сообщений (например, ECHO% me%: some message ).
Я также сохраняю родительский путь к сценарию в переменной с именем % parent% . Я использую эту переменную для создания полных путей к файлам для любых
другие файлы в том же каталоге, что и наш скрипт.

<< Часть 1 - Начало работы Часть 3 - Коды возврата >>

.

Переменные среды Windows — Windows CMD

Переменные среды Windows — Windows CMD — SS64.com

Переменные среды в основном используются в пакетных файлах, их можно создавать,
изменен и удален для сеанса с помощью команды SET. Для внесения постоянных изменений используйте SETX

.

Переменные можно отобразить с помощью SET или
ЭХО.

Переменные имеют знак процента с обеих сторон:% ThisIsAVariable%
Имя переменной может включать пробелы, знаки препинания и смешанный регистр:% _Another Ex.ample%
(В отличие от переменных параметров, которые имеют только один знак% и всегда состоят из одного символа:% A)

Имя переменной может включать любой из следующих символов:
A – Z, a – z, 0–9, # $ ‘() * +, -. ? @ [] _ ​​`{} ~
Первый символ имени не должен быть числовым.

Переменные массива

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

Set elem [1] = Первый элемент
Установить elem [2] = Второй
Set elem [3] = Третий

Для выполнения операций индексации массива с ними используйте EnableDelayedExpansion и ссылку, например! Elem [% var%]!
это полностью объясняется в этом Q / A StackOverflow.

Стандартные (встроенные) переменные среды

.

.

Переменная Неустойчивый
(Только чтение)
Значение по умолчанию при условии, что системный диск — C:
ALLUSERSPROFILE C: \ ProgramData
ДАННЫЕ ПРИЛОЖЕНИЯ C: \ Users \ {имя пользователя} \ AppData \ Roaming
CD Я Текущий каталог (строка).
Имя клиента Я Только серверы терминалов — имя компьютера удаленного хоста.
CMDEXTVERSION Я Текущий номер версии расширений командного процессора.
(NT = «1», Win2000 + = «2».)
CMDCMDLINE Я Исходная командная строка, которая вызвала командный процессор.
Общие файлы программ C: \ Program Files \ Общие файлы
ОБЩИЕ ПРОГРАММЫ (x86) C: \ Program Files (x86) \ Общие файлы
ИМЯ КОМПЬЮТЕРА {computername}
COMSPEC C: \ Windows \ System32 \ cmd.exe или при использовании 32-битного WOW — C: \ Windows \ SysWOW64 \ cmd.exe
ДАТА Я Текущая дата в том же региональном формате, что и DATE.
УРОВЕНЬ ОШИБКИ Я Текущее значение ERRORLEVEL, автоматически устанавливается при выходе из программы.
FPS_BROWSER_APP_PROFILE_STRING
FPS_BROWSER_USER_PROFILE_STRING
Internet Explorer
По умолчанию
Это недокументированные переменные для браузера Edge в
Windows 10.
Наивысший номер узла Y (скрыто) Наибольший номер узла NUMA на этом компьютере.
ДОМАШНИЙ ПРИВОД Я С:
HOMEPATH Я \ Users \ {имя пользователя}
LOCALAPPDATA C: \ Users \ {имя пользователя} \ AppData \ Local
СЕРВЕР ВХОДА \\ {domain_logon_server}
NUMBER_OF_PROCESSORS Я Количество процессоров, работающих на машине.
ОС Я Операционная система на рабочей станции пользователя.
ПУТЬ Пользователь и
Система
C: \ Windows \ System32 \; C: \ Windows \; C: \ Windows \ System32 \ Wbem; {плюс программные пути}
ПУТЬ .COM; .ИСПОЛНЯЕМЫЙ ФАЙЛ; .ЛЕТУЧАЯ МЫШЬ; .CMD; .VBS; .VBE; .JS; .WSF; .WSH; .MSC
Определите расширения исполняемых файлов по умолчанию для поиска и использования и в каком порядке слева направо.
Синтаксис похож на переменную PATH — разделители точки с запятой.
АРХИТЕКТУРА_ПРОЦЕССОРА Я AMD64 / IA64 / x86 Это не говорит вам об архитектуре процессора, а только о текущем процессе, поэтому он возвращает «x86» для 32-битного WOW-процесса, запущенного в 64-битной Windows. См. Определение ОС 32/64 бит
АРХИТЕКТУРА_ПРОЦЕССОРА 6432 =% PROCESSOR_ARCHITECTURE% (но доступно только для 64-битных процессов)
ИДЕНТИФИКАТОР_ПРОЦЕССОРА Я ID процессора рабочей станции пользователя.
PROCESSOR_LEVEL Я Уровень процессора рабочей станции пользователя.
ПРОЦЕССОР_РЕВИЗИЯ Я Версия процессора рабочей станции пользователя.
Программа W6432 =% ProgramFiles% (но доступно только при работе в 64-битной ОС)
Данные программы C: \ ProgramData
Файлы программ C: \ Program Files или C: \ Program Files (x86)
Файлы программ (x86) 1 C: \ Program Files (x86) (но доступно только при работе в 64-битной ОС)
PROMPT Код для текущего формата командной строки, обычно $ P $ G
C:>
PSModulePath% SystemRoot% \ system32 \ WindowsPowerShell \ v1.0 \ Модули \
Общественный C: \ Users \ Public
СЛУЧАЙНАЯ Я Случайное целое число от 0 до 32 767 (включительно).
% Имя сеанса% Только серверы терминалов — для сеанса сервера терминалов SessionName представляет собой комбинацию имени соединения, за которым следует #S essionNumber . Для консольного сеанса SessionName возвращает «Console».
ДИСК СИСТЕМЫ С:
РУЧНОЙ СИСТЕМЫ По умолчанию Windows устанавливается в C: \ Windows, но нет никаких гарантий, что Windows может быть установлена ​​в другую папку или с другой буквой диска.
systemroot — это системная переменная, доступная только для чтения, которая разрешается в правильное местоположение.
Значения по умолчанию в ранних версиях Windows: C: \ WINNT, C: \ WINNT35 и C: \ WTSRV
TEMP и TMP Пользовательская переменная C: \ Users \ {Имя пользователя} \ AppData \ Local \ Temp
В XP это было \ {имя пользователя} \ Локальные настройки \ Temp
ВРЕМЯ Я Текущее время в том же формате, что и ВРЕМЯ.
UserDnsDomain Я
Пользовательская переменная
Устанавливается, если пользователь вошел в домен, и возвращает полностью определенный домен DNS, которому принадлежит учетная запись текущего вошедшего в систему пользователя.
ДОМЕН ПОЛЬЗОВАТЕЛЯ {userdomain}
USERDOMAIN_roamingprofile Пользовательский домен для путей RDS или стандартных перемещаемых профилей.Windows 8/10/2012 (или Windows 7/2008 с Q2664408)
ИМЯ ПОЛЬЗОВАТЕЛЯ {имя пользователя}
ПРОФИЛЬ ПОЛЬЗОВАТЕЛЯ% SystemDrive% \ Users \ {имя пользователя}
Это эквивалент переменной среды $ HOME в Unix / Linux
WINDIR

% windir% — это обычная пользовательская переменная, которую можно изменить, что делает ее менее надежной, чем% SystemRoot%
По умолчанию установлено windir =% SystemRoot%
% WinDir% предшествует Windows NT, его использование во многих местах было заменено системной переменной:% SystemRoot%

1 Только в 64-битных системах используется для хранения 32-битных программ.

Если не указано иное, все указанные выше переменные являются системными.

Переменные среды хранятся в реестре:

Пользовательские переменные: HKEY_CURRENT_USER \ Environment
Системные переменные: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment

По умолчанию файлы, хранящиеся в Local Settings , не перемещаются с перемещаемым профилем.

Динамические переменные среды доступны только для чтения и вычисляются каждый раз, когда переменная раскрывается.Когда все переменные указаны с помощью SET, они не появятся в списке. Не пытайтесь напрямую УСТАНОВИТЬ динамическую переменную.

Недокументированные Динамические переменные (только чтение)

% __ APPDIR __% Путь к каталогу текущего приложения .exe, оканчивающийся обратной косой чертой в конце. (Глобальный) — обсудить
% __ CD __% Текущий каталог, оканчивающийся обратной косой чертой в конце. (Global)
% = C:% Текущий каталог диска C :.(См. Объяснение этого вопроса Раймондом Ченом.)
% = D:% Текущий каталог диска D :, если к диску D: был осуществлен доступ в текущем сеансе CMD.
% DPATH% Относится к (устаревшей) команде DPATH.
% = ExitCode% Самый последний код выхода , возвращенный внешней командой, такой как CMD / C EXIT n , преобразованный в шестнадцатеричный код .
% = ExitCodeAscii% Самый последний код выхода , возвращенный внешней командой в виде ASCII.
(Значения 0-32 не отображаются, поскольку они соответствуют управляющим кодам ASCII.)
% FIRMWARE_TYPE% Тип загрузки системы: Legacy , UEFI, Не реализовано, Неизвестно Windows 8/2012.
% KEYS% Относится к (устаревшей) команде KEYS.
Более подробную информацию об этих недокументированных переменных можно найти в этом ответе на stackoverflow от Дэйва Бенхама.

Недокументированные динамические переменные (чтение / запись)

% __ COMPAT_LAYER% Задайте для ExecutionLevel значение RunAsInvoker (asInvoker), , RunAsHighest, (highAvailable) или RunAsAdmin (requireAdministrator), чтобы получить дополнительные сведения о повышении и Q286705 / Application Compatibility Toolkit для других уровней совместимости и т. Д. (Цвета, темы).

Передавать переменные между пакетными скриптами

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

Дочерний процесс по умолчанию наследует копию всех переменных среды от своего родителя, это делает переменные среды непригодными для хранения секретной информации , такой как ключи API или пароли пользователей, особенно в редких случаях, таких как сбои, когда журнал сбоев часто включает полная среда ОС на момент сбоя.PowerShell / Get-Credential — более безопасный подход.

Если расширения команд отключены, следующие динамические переменные будут недоступны:
% CD%% DATE%% TIME%% RANDOM%% ERRORLEVEL%% CMDEXTVERSION%% CMDCMDLINE%% HIGHESTNUMANODENUMBER%

«Людей можно убедить, но они не могут быть удовлетворены против своей воли. Но хотя вкус и упрям, он очень изменчив, и время часто преобладает, когда аргументы терпят неудачу »~ Сэмюэл Джонсон

Связано:

Как работает процесс создания среды — Раймонд Чен [MSFT]
PowerShell — Работа с переменными среды
Папки пользовательской оболочки — Профиль, Меню Пуск — Расположение папок профиля пользователя.
Обнаружение 32-битной и 64-битной Windows
CALL — оценка переменных среды.
SET — Просмотр переменных среды, установка локальных переменных.
SETX — Установить переменные среды.
Q100843 — Четыре типа переменных среды.
Q286705 — Установите переменные совместимости в пакетном файле.
Q242557 — Параметры реестра для перенаправления папок.
StackOverflow — Сохранение новой строки в переменной.


Авторские права © 1999-2020 SS64.com
Некоторые права защищены.

cmd — назначить вывод программы переменной с помощью командного файла MS

Переполнение стека

  1. Около
  2. Продукты

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

  2. Переполнение стека для команд
    Где разработчики и технологи делятся частными знаниями с коллегами

  3. Вакансии
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. Реклама
    Обратитесь к разработчикам и технологам со всего мира

  6. О компании

Загрузка…

  1. Авторизоваться
    зарегистрироваться

  2. Текущее сообщество

.Набор

— Переменная среды — Набор Windows CMD

— Переменная среды — Windows CMD — SS64.com

Отображение, установка или удаление переменных среды CMD. Изменения, внесенные с помощью SET, останутся только на время текущего
CMD-сессия.

 Синтаксис
      SET  переменная 
      SET  переменная  =  строка 
      НАБОР " переменная  =  строка "
      НАБОР " переменная  ="

      SET / A  "переменная  =  выражение "
      SET / P  переменная  = [ promptString ]
      УСТАНОВЛЕН "

Ключ
     переменная : новое или существующее имя переменной среды e.г. _num
     строка : текстовая строка для присвоения переменной.

     выражение : арифметическое выражение
   / A: см. Полную информацию об арифметических выражениях ниже. 

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

Рекомендуется избегать использования каких-либо символов-разделителей (пробелов, запятых и т. Д.) В имени переменной .

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

Любые лишние пробелы вокруг имени переменной или строки будут игнорироваться , а не , SET не прощает лишних пробелов, как многие другие языки сценариев. Поэтому используйте SET alpha = beta, а не SET alpha = beta

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

Оболочка CMD не сможет прочитать переменную среды, если она содержит более 8 191 символа.

Отобразить переменную:

В большинстве случаев окружите имя переменной символом%, и будет использовано значение переменной
например Чтобы отобразить значение переменной _department с
Команда ECHO:
ECHO% _department%

Если имя переменной не найдено в текущей среде, SET установит% ERRORLEVEL% на 1.
Это можно определить с помощью IF ERRORLEVEL …

.

Добавление дополнительных символов может быть полезно для отображения любого пробела:
ECHO [% _department%]
ECHO «% _department%»

Введите SET без параметров, чтобы отобразить все текущие переменные среды.

Введите SET с именем переменной для отображения этой переменной
SET _department

Команда SET, вызываемая со строкой (без знака равенства), отобразит список всех совпадающих переменных с подстановочными знаками

Показать переменные, начинающиеся с ‘P’:
НАБОР p
Показать переменные, начинающиеся с подчеркивания
НАБОР _

Установить переменную:

Пример хранения текстовой строки:

C: \> SET _dept = Sales and Marketing
C: \> установить _
_dept = Продажи и маркетинг

Установите переменную, содержащую символ перенаправления, обратите внимание на положение кавычек, которые не сохраняются:

НАБОР «_dept = Продажи и маркетинг»

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

C: \> установить xx = рыба
C: \> set msg =% xx% chip
C: \> установить сообщение
msg = рыбные чипсы

C: \> набор xx = колбаса
C: \> установить сообщение
msg = рыбные чипсы

C: \> set msg =% xx% chip
C: \> установить сообщение
msg = колбасные чипсы

Избегайте начинать имена переменных с числа, это позволит избежать неправильной интерпретации переменной как параметра
% 123_myvar% <>% 1 23_myvar

Для отображения недокументированных системных переменных:

 КОМПЛЕКТ "

Значения с пробелами — использование двойных кавычек

Нет необходимости добавлять кавычки при присвоении значения, которое включает пробелы

SET _variable = один, два, три

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

НАБОР « _ переменная = одно и два »

Если вы заключите значение в кавычки, эти кавычки будут сохранены:

SET _variable = « one & two »

Имена переменных с пробелами

Переменная может содержать пробелы, а также само имя переменной может содержать пробелы,
поэтому следующее присвоение:
SET _var = MyText
создаст переменную с именем «_var» — обратите внимание на конечный пробел

Запрос на ввод данных пользователем

Переключатель / P позволяет вам установить переменную, равную строке ввода, введенной пользователем.
Строка подсказки отображается до того, как будет прочитан ввод пользователя.

 @ эхо выкл.
Set / P _dept = Пожалуйста, введите Отдел || Set _dept = NothingChosen 
If "% _dept%" == "NothingChosen" goto sub_error
If / i "% _dept%" == "finance" goto sub_finance
If / i "% _dept%" == "hr" goto sub_hr goto: eof : sub_finance эхо Вы выбрали финансовый отдел goto: eof : sub_hr echo Вы выбрали hr dept
goto: eof : sub_error echo Ничего не выбрано

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

Команда CHOICE является альтернативой SET / P (но CHOICE принимает только один символ / нажатие клавиши).

Поместите первую строку файла в переменную:

Set / P _MyVar = Эхо% _MyVar%

В ранних версиях CMD игнорировались любые символы возврата каретки / новой строки (CR + LF) перед первой строкой, содержащей текст.

Вторая и все последующие строки текста в файле будут отброшены.

Удалить переменную

Введите SET только с именем переменной и знаком равенства:

SET _department =

Еще лучше, чтобы убедиться, что после = нет конечного пробела, поместите выражение в круглые скобки или кавычки:
(SET _department =)
или
НАБОР «_department =»

Арифметические выражения (SET / a)

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

При ссылке на переменную в вашем выражении SET / A позволяет вам опустить%, поэтому _myvar вместо% _myvar%

Любое вычисление SET / A, которое возвращает дробный результат, будет округлено до ближайшего целого числа в меньшую сторону.

Выражение, которое нужно оценить, может включать следующие операторы:

   + Добавить set / a "_num = _num + 5"
   + = Добавить набор переменных / a "_num + = 5"
   - Вычесть set / a "_num = _num-5"
   - = Вычесть набор переменных / a "_num- = 5"
   * Умножение set / a "_num = _num * 5"
   * = Умножение набора переменных / a "_num * = 5"
   / Разделить набор / a "_num = _num / 5"
   / = Разделить набор переменных / a "_num / = 5"
   %% Набор модулей / a "_num = 17 %% 5"
   %% = Набор модулей / a "_num %% = 5"
   ! Логическое отрицание 0 (FALSE) ⇨ 1 (TRUE) и любое ненулевое значение (TRUE) ⇨ 0 (FALSE)
   ~ Побитовое инвертирование
   & И установить / a "_num = 5 & 3" 0101 И 0011 = 0001 (десятичный 1)
   & = И набор переменных / a "_num & = 3"
   | ИЛИ установить / a "_num = 5 | 3" 0101 ИЛИ 0011 = 0111 (десятичное 7)
   | = ИЛИ набор переменных / a "_num | = 3"
   ^ XOR set / a "_num = 5 ^ 3" 0101 XOR 0011 = 0110 (десятичное 6)
   ^ = Набор переменных XOR / a "_num = ^ 3"
   Сдвиг.(бит знака ⇨ 0) Арифметический сдвиг.
   >> Правый Shift. (Заполняет знаковый бит таким образом, чтобы отрицательное число всегда оставалось отрицательным.)
                       Ни ShiftRight, ни ShiftLeft не обнаруживают переполнения.
   << = Переменная смещения влево установлена ​​/ a "_num << = 2"
   >> = Переменная сдвига вправо установлена ​​/ a "_num >> = 2"

  () Набор выражений группы скобок / a "_num = (2 + 3) * 5"
   , Запятые разделяют набор выражений / a "_num = 2, _result = _num * 5"
 

Если имя переменной указано как часть выражения, но не определено в текущей среде, то SET / a будет использовать значение 0.

В пакетном сценарии оператор модуля (%) всегда должен удваиваться до (%%).

Операторы арифметического сдвига SET / A не обнаруживают переполнения, которое может вызвать проблемы для любой нетривиальной математики, например побитовая инверсия часто неправильно меняет знак +/- результата.

См. SET / примеры ниже и эту ветку форума для получения дополнительной информации.
также см. SetX, VarSearch и VarSubstring для получения дополнительной информации о манипуляциях с переменными.

SET / A должен работать в полном диапазоне 32-битных целых чисел со знаком (от -2 147 483 648 до 2 147 483 647), но на практике для отрицательных целых чисел оно не будет ниже -2 147 483 647

Примеры:

НАБОР / A «_result = 2 + 4»
(= 6)

НАБОР / A «_result = 5»
(= 5)
SET / A «_result + = 5″
(= 10)

SET / A «_result = 2 << 3″
(= 16) {2 Lsh 3 = двоичный 10 Lsh 3 = двоичный 10000 = десятичный 16}

SET / A «_result = 5 %% 2″
(= 1) {5/2 = 2 + 2 остаток 1 = 1}

SET / A «_var1 = _var2 = _var3 = 10»
(устанавливает для трех переменных одно и то же значение — недокументированный синтаксис.)

SET / A обработает любую строку символов в выражении
как имя переменной среды. Это позволяет выполнять арифметические операции с окружением.
переменные без необходимости вводить какие-либо знаки% для получения значений. SET / A _result = 5 + _MyVar

Можно выполнить несколько вычислений в одной строке, разделив каждое вычисление запятыми, например:

_год = 1999
Set / a _century = _year / 100, _next = _century + 1

Все числа должны находиться в диапазоне 32-битных целых чисел со знаком (от -2 147 483 648 до 2 147 483 647), чтобы обрабатывать большие числа, используйте PowerShell или VBScript.

Leading Zero будет указывать Octal

Числовые значения являются десятичными числами, если перед ними не стоит
0x для шестнадцатеричных чисел,
0 для восьмеричных чисел.

Итак, 0x10 = 020 = 16 десятичных

Восьмеричная запись может сбивать с толку — все числовые значения, начинающиеся с нулей, обрабатываются как восьмеричные, но 08 и 09 не являются допустимыми восьмеричными цифрами.
Например, SET / a _month = 07 вернет значение 7, но SET / a _month = 09 вернет ошибку.

Постоянные изменения

Изменения, сделанные с помощью команды SET, НЕ являются постоянными, они применяются только к текущему запросу CMD и остаются только до закрытия окна CMD.
Чтобы навсегда изменить переменную в командной строке, используйте SetX
или с помощью графического интерфейса — Панель управления | Система | Окружающая среда | Системные / пользовательские переменные

Постоянное изменение переменной с помощью SetX не повлияет на уже открытую подсказку CMD.
Только новые запросы CMD получат новую настройку.

Конечно, вы можете использовать SetX вместе с SET для одновременного изменения обоих:

Установить _Library = T: \ Library \
SetX _Library T: \ Library \ / m

Изменить среду для других сеансов

Ни SET, ни SetX не повлияют на другие сеансы CMD, которые уже запущены на машине. Это хорошо, особенно на многопользовательских машинах, вашим скриптам не придется бороться с динамически изменяющейся средой во время их работы.

Можно добавить постоянные переменные среды в реестр (HKCU \ Environment), но это недокументированный (и, вероятно, неподдерживаемый) метод, и он не вступит в силу до следующего входа пользователя.

Системные переменные среды можно найти в реестре здесь:
HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment

ВЫЗОВА

Синтаксис CALL SET позволяет оценивать подстроку переменной, страница CALL содержит более подробную информацию об этом методе, в большинстве случаев лучше использовать Setlocal EnableDelayedExpansion

Autoexec.летучая мышь

Любой оператор SET в c: \ autoexec.bat будет проанализирован во время загрузки
Установленные таким образом переменные недоступны для 32-битных программ с графическим интерфейсом пользователя — они не будут отображаться на панели управления.
Они появятся в командной строке CMD.

Если autoexec.bat ВЫЗЫВАЕТ какие-либо вторичные командные файлы, дополнительные командные файлы НЕ будут анализироваться при загрузке.
Такое поведение может быть полезно на ПК с двойной загрузкой.

Уровни ошибок

Когда включены расширения команд CMD (по умолчанию):

Уровень ошибки
Если переменная была успешно изменена без изменений , обычно это будет 0, но если предыдущая команда установила уровень ошибки, он будет сохранен (это ошибка).
SET Переменная не найдена или имя недействительно.
SET _var = значение, когда имя _var начинается с «/» и не заключено в кавычки.
SET / P Пустой ответ от пользователя.
1
SET / A Несбалансированные скобки 1073750988
SET / A Отсутствующий операнд 1073750989
SET / A Синтаксическая ошибка 1073750990
SET / A Неверный номер 1073750991
SET / A Число больше 32 бит 1073750992
SET / A Деление на ноль 1073750993

SET — внутренняя команда.
Если расширения команд отключены, все команды SET отключены, кроме простых назначений, например: _variable = MyText

# Я настроился на вас
# Я думал о тебе … — Руди Кларк (Джеймс Рэй / Джордж Харрисон)

Связанный:

Синтаксис — VarSubstring Извлечь часть переменной (подстроку).
Синтаксис — VarSearch Поиск и замена части переменной.
Синтаксис — Переменные среды — Список переменных по умолчанию.
CALL — Оценить переменные среды.
SETX — установить переменную среды навсегда.
SETLOCAL — начать локализацию переменной окружения
изменения.
ENDLOCAL — Завершить локализацию изменений среды, использовать для возврата значений.
EXIT — Установить конкретный УРОВЕНЬ ОШИБКИ.
Параметры — получить полный или частичный
путь из переменной командной строки.
PATH — Измените переменную среды% PATH%.
PATHMAN — утилита Resource Kit для изменения как системного, так и пользовательского путей.См. Pathman.wri.
REG — чтение или установка значений реестра.
СРЕДА WMIC — установка переменных среды через WMI.
StackOverflow — Сохранение новой строки в переменной.

Powershell: Set-Variable — установка переменной и значения (set / sv).
Powershell: Read-Host — запрашивать ввод данных пользователем.
Эквивалентная команда bash (Linux): env — отображение, установка или удаление переменных среды.


Авторские права © 1999-2020 SS64.com
Некоторые права защищены.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *