My test.txt output is
ETA: I tried
and I was able to print
However, I need to NOT print the trailing space after the number.
7 gold badges80 silver badges111 bronze badges
asked Sep 20, 2012 at 3:35
To fix, escape the integer with a ^ character:
answered Sep 20, 2012 at 3:54
35 gold badges305 silver badges377 bronze badges
4 gold badges16 silver badges27 bronze badges
answered Sep 28, 2018 at 14:53
There are a number of ways to comment in a batch file
2)Using labels :, :: or :; etc.
For :: comment, ‘: comment’ is an invalid label name because it begins with an invalid character. It is okay to use a colon in the middle of a label though. If a space begins at the start of label, it is removed : label becomes :label. If a space or a colon appears in the middle of the label, the rest of the name is not interpreted meaning that if there are two labels :f:oo and :f rr, both will be interpreted as :f and only the later defined label in the file will be jumped to. The rest of the label is effectively a comment. There are multiple alternatives to ::, listed here. You can never goto or call a ::foo label. goto :foo and goto ::foo will not work.
You can also use the caret operator in the :: comment like so:
But you need the trailing :; for the reason stated above.
To comment at the end of a line you can do
command &:: or command & rem comment, but there still has to be an even number, like so:
3)Using an invalid environment variable
%= comment =%. In a batch file, environment variables that are not defined are removed from the script. This makes it possible to use them at the end of a line without using &. It is custom to use an invalid environment variable i.e. one that contains an equals sign. The extra equals is not required but makes it look symmetrical. Also, variable names starting with “=” are reserved for undocumented dynamic variables. Those dynamic variables never end with “=”, so by using an “=” at both the start and end of the comment, there is no possibility of a name clash. The comment cannot contain % or :.
4)As a command, redirecting stderr to nul
5)At the end of a file, everything after an unclosed parenthesis is a comment
Команда ECHO – вывод текста на экран консоли
Формат командной строки:
В текстовый файл logfile.txt записывается дата и время начала работы
командного файла, некоторые результаты и время завершения.
При выводе служебных символов, интерпретируемых командным процессором нужно использовать символ ^. Например, вместо значения переменной ERRORLEVEL, нужно вывести текст “%ERRORLEVEL%”
< nul set /p str=”text1 “
< nul set /p str=”text2″
< nul set /p str=”text3″
При выполнении такого командного файла сообщение на экране будет представлено одной строкой:
Для подачи звуковых сигналов можно использовать вывод служебного символа с кодом 07 (BELL). Достаточно просто включить его в поток выходных данных, что зависит от возможностей редактора, который используется для написания командного файла. Можно использовать и стандартные возможности командной строки, добавив комбинацию CTRL+G :
Весь список команд CMD Windows
Хэллоу пикабушник. Я хочу, чтобы ты понял весь программный язык cmd(bat) на понятном языке. Ну, давай приступим?
С этим мы разобрались, теперь, зачем он нужен? Дело в том, что некоторые вещи можно быстрее выполнить в командной строке, а некоторые настройки в принципе отсутствуют в графическом интерфейсе пользователя. Так же следует иметь в виду, что до сих пор существуют утилиты, не имеющие графического интерфейса, а иногда он оказывается недоступен, например из-за сбоя.
Как открыть командную сроку(cmd.exe)
нажмите сочетание клавиш WIN+R, введите cmd и нажмите кнопку Ok;нажмите кнопку «Пуск» введите в поле поиска «командная строка» и щелкните в результатах поиска «Командная строка» (можно ввести «cmd» и выбрать в результатах «cmd»);нажмите «Пуск» ⇒ «Все программы» ⇒ «Стандартные» ⇒ «Командная строка»;открыть в Проводнике папку C:WindowsSystem32 и запустить файл cmd.exe.
И так, давайте создадим на рабочем столе текстовый документ, а далее впишем в него
После напишем такую строку A: Что это такое? Это так сказать, строка, позволяющая делать оборот(обратно выполнять функции,команды после этой строки)
После давайте напишем команду, которая будет открывать окно, в данном случае это команда “Start”
Команда START – запуск приложения в новом окне
Команда START позволяет запускать приложения в отдельном окне, с возможностью указания некоторых параметров их выполнения.
Параметры командной строки:
“заголовок” – заголовок окна. Обязательно в двойных кавычках.
путь – рабочий каталог.
B – запуск приложения без создания нового окна с отключением обработки сочетания клавиш CTRL+C. Если приложение не обрабатывает сочетание клавиш CTRL+C самостоятельно, единственным способом его прерывания является использование сочетания клавиш CTRL+Break.
I – Новой средой станет исходная среда, переданная cmd.exe, а не текущая среда.
MIN – Запуск команды/программы в свернутом окне.
MAX – Запуск команды/программы в развернутом окне.
SEPARATE – Запуск 16-разрядной программы Windows в отдельной области памяти.
LOW – Запуск приложения с приоритетом IDLE (самый низкий приоритет).
NORMAL – Запуск приложения с приоритетом NORMAL.
HIGH – Запуск приложения с приоритетом HIGH.
REALTIME – Запуск приложения с приоритетом REALTIME (самый высокий приоритет).
WAIT – Запуск приложения с ожиданием его завершения.
ABOVENORMAL – Запуск приложения с классом приоритета ABOVENORMAL (выше стандартного)
BELOWNORMAL – Запуск приложения с классом приоритета BELOWNORMAL (ниже стандартного)
команда/программа – Если это внутренняя команда cmd.exe или пакетный файл, обработчик команд (cmd.exe) запускается с ключом /K. Это означает, что окно не будет закрыто после завершения команды. Если это не внутренняя команда cmd.exe и не пакетный файл, значит, это программа, которая будет запущена в графическом или текстовом окне.
Но давайте напишем start http://google.com – при данное команде, будет открываться гугл.
Вот как все это должно выглядеть
Тип файла выбираем “Все файлы” и к названии вашего файла(в моем случае пикабу) приписываем .bat
в вк вы можете попросить меня скинуть вам немножко жоще батник xD
– вывод на экран самих команд, а не только результат их выполнения. Так, если мы пропишем в сценарии следующую строку кода:
Для простоты запуска сценариев, пропишите в командной строке:
Path PATH;путь к папке
off
Hello World
Хорошо, теперь последняя строка уже не отображается, но отображается первая, что не является показателем достигнутой цели, как это исправить, я покажу дальше, по ходу статьи.
off
Hello Worldd:workhello.txt
В данном случае, если запустить сценарий с этим кодом из консоли командной строки (cmd), то в самом окне cmd отобразится первая строка кода, а в файл hello.txt запишется строка Hello World.
Давайте перепишем предыдущий пример:
Или можно так прописать:
По теме данной статьи можно провести аналогию с сервером сценариев Windows Script Host, в котором объект WScript.Shell использует аналогичную команду эхо для вывода данных. Так же, если мне память не изменять, функция эхо применяется в языке программирования php. Тот, кто пробовал свои силы в различных языках программирования с легкостью сможет провести между ними аналоги и найти общие точки.
Объявление собственных переменных является неотъемлемой часть практически любого языка программирования, так в языке vbscript они объявляются с помощью ключевого слова dim, а в jscript – используется ключевое слово var.
Переменные командной строки Windows представляют немного другой характер, тут нельзя объявить группу переменных cmd, или же сразу присвоить значения нескольким переменным в командной строке. Давайте посмотрим на следующие строчки кода:
В данном примере, с помощью ключевого слова cmd set мы поэтапно объявили три переменные (Var1, Var2 и Var3), как и в языке vbscript, в cmd регистр символов не играет роли, поэтому, данные строчки выведут фразу «Привет Мир!!!»
Var3
VAR3
vAr3
Стоит учитывать один момент, запись
это не одно и тоже, то есть, в первом случае мы создаем cmd переменную «var1», а во втором – «var1 «. С присвоением значений аналогичная ситуация, так что обращайте внимание на пробел!!!
Если вы запустите на выполнение команду cmd set, которая выводит список всех переменных и их значений в текущем сеансе, то увидите, что там будут присутствовать и только что созданные cmd переменные и переменные среды. Мы сможем обращаться к ним на протяжение всего сеанса работы.
Что бы очистить переменные в командной строке Windows от их содержимого, нужно просто присвоить пустое значение:
Мы просто после имени прописали знак равенства и все. Стоит помнить, что если в таких языках программирования как vbscript и jscript присвоение пустого значения переменной не влияет на ее существование, то в командной строке происходит полное ее удаление, то есть, команда:
просто выведет строчку %Var3%, а команда
Выведет сообщение «переменная среды var3 не определена»
= ^ = = ^^
В данном примере мы экранировали символы & и ^, тем самым присвоив фразы:
«100 & 3 = 5»
«100 ^3»
100
«3» не является внутренней или внешней командой, исполняемой программой или командным файлом.
= ^^^ = = ^^^^
Теперь при выполнении кода:
все пройдет успешно.
Как и в сценариях сервера Windows Script Host, переменные в командной строке Windows могут содержать заданную область видимости.
– блок кода, за пределами которого нельзя получить доступ к переменным, объявленным в нем. Довольно ясно значение области видимости проявляется при роботе с функциями, по этому вопросу можете прочить статью «Урок 3 по JScript: Объявление пользовательских функций«.
Понятно, что переменные cmd, созданные в текущем окне командной строки недоступна для других процессов, но, есть возможность задать ограничения еще большие.
off
=rem Начало локализации
setlocal
= Lokalnaya: = var1endlocal
Globalnaya: = var1
If we want to execute a series of commands/instructions we can do that by writing those commands line by line in a text file and giving it a special extension (e.g. .bat or .cmd for Windows/DOS and .sh for Linux) and then executing this file in the CLI application. Now all the commands will be executed (interpreted) serially in a sequence (one by one) by the shell just like any interpreted programming language. This type of scripting is called Batch Scripting (in Windows) and Bash Scripting (in Linux).
Advantages
Step 1: Open your preferred directory using the file explorer and click on View. Then go to the Show/hide section and make sure that the “File name extensions” are ticked.
Explanation
Printing a message on the screen using ECHO
Let’s see the output.
Using <@echo off>
Printing the value of a variable
Note that we can put the %variable_name% anywhere between any text to be printed.
Concatenation of Strings
Поиск в локальной сети включенных компьютеров.
Для просмотра содержимого ARP-кэш можно воспользоваться командой
arp –a – отобразить все записи в таблице ARP
Пример отображения таблицы ARP:
Интерфейс: 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-ff-ff-ff-ff-ff статический
224.0.0.22 01-00-5e-00-00-16 статический
224.0.0.252 01-00-5e-00-00-fc статический
239.255.255.250 01-00-5e-7f-ff-fa статический
Для понимания алгоритма опроса сети необходимо учесть следующее:
Разрешение адресов ARP используется только при передаче данных по IP-протоколу в пределах сегмента локальной сети, задаваемого маской. Так, например, для примера с IP адресом 192.168.0.1 и маски 255.255.255.0 это будет диапазон IP от 192.168.0.1 до 192.168.0.254. Обращение же к любому другому адресу будет выполняться через устройства маршрутизации. Т.е. при выполнении команды
Ниже приводится простой пример командного файла, определяющего список включенных сетевых устройств локальной сети по результатам выполнения команд PING и ARP.
Работа с дисками, файлами и каталогами.
Задача – определить буквы дисков, присутствующих в системе и записать результат в файл с именем tstdsk.txt текущего каталога. Можно воспользоваться выполнением команды IF EXIST в цикле FOR для набора из букв латинского алфавита, т.е для каждой буквы диска проверить наличие корневого каталога командой
IF EXIST буква диска:
Сначала создаем пустой файл:
copy nul tstdsk.txt
Это действие необязательно, если файла не существует, но в противном случае, результаты будут дописываться в конец файла, и если в нем уже был список дисков от предыдущего исполнения командного файла, то он удвоится. Команда copy nul tstdsk.txt для существующего файла установит нулевой размер данных, т.е. сделает его пустым.
Окончательно, командный файл будет выглядеть следующим образом:
for %%i in (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) DO (
Для обработки файлов определенного типа, например любых с расширением .tmp используется маска – *.tmp . Так, для удаления всех файлов *.tmp из каталога C:TEMP можно воспользоваться командой ERASE (или DEL )
DEL /Q C:TEMP*.TMP
В масках файлов и каталогов возможно использование частичных имен
ERASE C:TEMPA*.TMP – удалить все файлы с расширением .TMP , имя которых начинается с символа “A”
DIR *u*.* – выдать список всех файлов и подкаталогов текущего каталога, в имени которых содержится символ “u”
DIR C:*t.* – выдать список всех файлов и каталогов в корне диска C: , имя которых заканчивается символом “t”
Задача – получить список всех каталогов с подкаталогами на логическом диске и записать результат в текстовый файл. Для рекурсивной обработки каталогов диска будем использовать команду FOR /R
Простой пример удаления файлов с расширением .tmp из каталога C:TEMP:
FOR /R C: emp %%i IN (*.tmp) DO del %%i
При выполнении команды возможно использование подстановочных значений переменной цикла для получения имен дисков, папок, файлов и их характеристик. Полный список возможных значений в случае использования переменной с именем i
%%~i – из переменной %i удаляются обрамляющие кавычки (“)
%%~fi – переменная %i расширяется до полного имени файла
%%~di – из переменной %i выделяется только имя диска
%%~pi – из переменной %i выделяется только путь к файлу
%%~ni – из переменной %i выделяется только имя файла
%%~xi – из переменной %i выделяется расширение имени файла
%%~si – полученный путь содержит только короткие имена
%%~ai – переменная %i принимает значение атрибутов файла
%%~ti – переменная %i принимает значение даты /времени файла
%%~zi – переменная %i принимает значение размера файла
Возможно объединение нескольких операторов :
%%~dpi – переменная %i заменяется только на имя диска и путь
%%~nxi – переменная %i заменяется только на имя файла и его расширение
%%~fsIi – переменная %i заменяется только на полный путь с краткими именами
%%~ftzai – переменная %I заменяется на строку, выдаваемую командой DIR
Так же, как и в предыдущем примере, желательно обнулить файл с результатами возможного предыдущего запуска данного командного файла:
REM Обнулить / создать файл для хранения списка каталогов C:dirlist.txt
copy nul C:dirlist.txt
REM Занесем первой строкой в пустой файл что-то вроде заголовка списка
REM Сделать текущим каталогом корневой каталог диска C:
for /R %%i in (C) DO (
В результате выполнения этого командного файла в корне диска C: будет создан файл dirlist.txt, содержащий список каталогов диска.
Если в цикле команды FOR /R используются подстановочные значения переменной %%I, то в качестве набора (in) не стоит использовать символ точки.
Задача – найти на диске файлы с расширением .log и скопировать их в каталог на другом логическом диске – D:MUSOR
Желательно проверить наличие каталога D:MUSOR и при необходимости, создать его командой md, а также удалить из него все файлы, если они существуют, командой del . Затем выполнить переход в корневой каталог диска C: и выполнить в цикле команды FOR поиск файлов по маске *.log во всех подкаталогах.
REM подготовить каталог D:MUSOR
if not exist D:MUSOR md D:MUSOR
REM удалить без подтверждения ( /Q) все файлы из каталога
del /Q D:MUSOR*.*
REM перейти в корень диска C:
REM Выполнить проверку наличия файлов с расширением *.log и скопировать их в
if exist “%%~dpi*.log” copy “%%~dpi*.log” “D:MUSOR*.*”
Практика использования FOR /R показала, что не стоит использовать в качестве набора для обработки символ “точка” ( конструкция in (.) ), поскольку при использовании подстановочных значений, можно получить возврат из текущего каталога на уровень выше. В данном примере в качестве набора in используется любой не служебный символ. Команду копирования ( copy ) можно заменить на команду перемещения файлов (MOVE), что приведет к удалению файлов источников после копирования в каталог D:MUSOR.
Пример с копированием файлов с расширением .log рассмотренный выше имеет некоторые существенные недостатки – не обрабатываются скрытые файлы и папки, и в конечном каталоге, куда копируются файлы ( D:MUSOR ) не создаются подкаталоги с теми же именами, которые принадлежат путям исходных копируемых файлов. Для устранения этих недостатком можно использовать немного другой скрипт :
REM подготовить каталог D:MUSOR – удалить его и его подкаталоги командой RD
RD /S /Q D:MUSOR
REM Создадим каталог заново
REM Задаем начальную папку для обработки в команде FOR – C:
for /R C: %%i in (C) DO (
xcopy “%%~dpi*.log” “D:MUSOR%%~pi*.*” /H /R /Q /Y
Для копирования используется команда xcopy с ключами:
/H – копировать скрытые файлы.
/R – разрешение на замену файлов с атрибутом “Только чтение”
/Q – не отображать имена копируемых файлов
/Y – разрешать перезаписывать существующие файлы.
Подсказку по использованию команды XCOPY можно получить при вводе:
При обработке строки xcopy “%%~dpi*.log” “D:MUSOR%%~pi*.*” /H /R /Q /Y в цикле FOR, в качестве источника копирования будет выбираться C:текущий путь*.log а в качестве приемника – D:MUSORтекущий путьимя копируемого файла
Похожий подход можно использовать для обнаружения и копирования исполняемых файлов (*.exe) из каталога временных файлов, задаваемого переменной TEMP. Бывает полезно для поиска вредоносных программ.
REM подготовить каталог D:MUSOR – удалить командой RD
REM Задаем начальную папку для обработки (%TEMP%) и выполняем FOR
for /R “%TEMP%” %%i in (C) DO (
xcopy “%%~dpi*.exe” “D:MUSOR%%~pi*.*” /H /R /Q
При работе с содержимым каталогов удобно использовать команды запоминания текущего каталога и перехода в новый PUSHD и команды восстановления ранее запомненного текущего каталога POPD
REM новый каталог стал текущим и можно использовать относительные пути
REM Выдать список exe-файлов текущего каталога (%TEMP%) командой DIR
REM Восстановить путь, запомненный командой PUSHD
Работа с графическими приложениями Windows.
Допустим, вам нужно из одного и того же командного файла запустить notepad.exe и cmd.exe. Если просто вставить строки
то после запуска notepad.exe выполнение командного файла приостановится и пока не будет завершен notepad, cmd.exe не запустится. Самый простой способ обойти эту проблему – использовать стандартную команду Windows . Полную справку по использованию можно получить по:
Попробуйте создать командный файл следующего содержания:
start /MAX notepad.exe
start “This is CMD.EXE” /MIN cmd.exe
net 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:Program FilesFARFAR.EXE” интерпретируется не как исполняемая программа, а как заголовок окна. Для того, чтобы подобного не случилось нужно использовать любой, пусть даже пустой, заголовок:
start “” “C:Program FilesFARFAR.EXE”
Если вам все же потребуется расширенное управление окнами приложений, придется воспользоваться сторонним программным обеспечением, например,
Из-за специфического поведения эта утилита большинством антивирусов определяется как вирус, поэтому для нормальной работы нужно занести ее в исключения антивируса.
Cmdow.exe – крошечная утилита, работающая в Windows NT4/2000/XP/2003 без установки. Позволяет получить список окон, перемещать, изменять размеры, переименовывать, сворачивать/разворачивать, активировать/деактивировать, закрывать, скрывать окна приложений и многое другое. Справку можно получить по команде:
Используется около 30 ключей. Описание на русском языке найдете здесь.Некоторые примеры:
cmdow /T – выдать информацию об окнах, отображаемых на панели задач рабочего стола.
Информация содержит колонки:
Handle – дескриптор окна – шестнадцатеричное число, связанное с данным окном.
Lev – уровень окна. Приложение может быть многооконным с несколькими уровнями окон.
Pid – идентификатор процесса, породившего окно.
-Window status- – состояние окна (видимое – Vis, скрытое – Hid, активное – Act, свернутое – Min и т.п.
Image – программа вызвавшая окно.
Caption – название окна
Если вы хотите, чтобы ваш командный файл выполнялся скрытно, добавьте в него строку:
Ниже командный файл с комментариями, демонстрирующий возможности работы cmdow:
REM Свернуть все окна – /MA
REM запустить cmd.exe с заголовком окна MyCMD
start “MyCMD” cmd.exe
REM ждать 5 секунд
REM Скрыть окно MyCMD
cmdow MyCMD /hid
REM Сделать видимым
cmdow MyCMD /vis
REM Переместить в верхний левый угол экрана и развернуть окно
cmdow MyCMD /MOV 0 0
cmdow Mycmd /max
REM Изменить размер на 320 х 240 и переместить вправо на 320 точек
cmdow MyCMD /MOV 320 0 /SIZ 320 240
REM Переместить окно в точку с координатами 320 x 240 и изменить размер на 350×50
cmdow MYCMD /MOV 320 240 /SIZ 350 50
REM Восстановить окно
cmdow MYCMD /RES
REM Восстановить и сделать активным окно этого командного файла
REM Зацикливание – переход к метке :M1
REM Подпрограмма задержки на 5секунд
Пример командного файла, закрывающего окна Проводника Интернет (IEXPLORE.EXE):
for /f “tokens=1-2,8” %%a in (‘cmdow’) do (
Перекодировка текстовых файлов.
for /f “tokens=*” %%i in (866.txt) do call:to1251 “%%i”
Своеобразным современным стандартом программы для перекодировки файлов считается, портированная из Unix утилита iconv (в составе библиотеки libiconv).
Когда задана опция -c, символы, которые не могут быть преобразованы просто выбрасываются. В противном случае при появлении подобной ошибки программа аварийно завершается.
Когда задана опция -s, сообщения об ошибках не выводятся.
Ключ -l позволяет получить список доступных кодировок. Утилита позволяет перекодировать текст, практически, из любой кодировки в любую.
Часто встречающиеся ошибки при написании командных файлов.
Обычно, это вызвано тем, что вы не учитываете тот факт, что на момент выполнения вашего командного файла переменные среды могут быть совсем другими, чем на момент его написания и запуска из командной строки. Например, в командном файле используется запуск приложения myprog.exe, находящегося в каталоге SCRIPTS на диске D: . Если в командном файле используется имя модуля без полного пути
и если каталог D:SCRIPTS не прописан в путях поиска (переменная PATH ) то модуль MYPROG.EXE может быть найден и выполнен только если текущим каталогом является D:SCRIPTS. Но если вы укажете полный путь к myprog.exe:
то программа будет найдена и выполнена в любом случае.
Кроме того, нередко программа, указанная в командном файле использует для поиска своих компонент (dll, ini и т.п. ) собственный каталог. Но на момент ее выполнения текущим каталогом может быть любой (чаще всего – системный каталог Windows). Естественно, компоненты не находятся и программа не выполняется. Для устранения проблемы добавьте в командный файл команды, обеспечивающие переход в нужный каталог. Например, программа myprog.exe должна выполняться в каталоге D:SCRIPTS:
Rem Сменим текущий диск
Rem перейдем в каталог SCRIPTS
Причина в том, что при создании командных файлов вы использовали текстовый редактор, в котором русские символы представлены не в DOS-кодировке. Если в приведенном выше примере перезапуска службы “DNS-клиент” вы используете неверную кодировку, то русская часть имени службы не будет опознана из-за неверной кодировки и будет выдано сообщение, что указанная служба не установлена. Чтобы избежать проблем с русскими символами в командных файлах, используйте редактор с поддержкой DOS-кодировки, например, встроенный редактор файлового менеджера FAR.
Переключение между кодировками в редакторе осуществляется нажатием F8 .С помощью FAR можно легко осуществлять перекодировку, скопировав (вырезав) текст в буфер обмена, затем нажав F8 и вставив текст из буфера.
Обычно это вызвано применением в командных файлах абсолютных значений вместо переменных среды окружения. Вместо C:WINDOWS правильнее использовать %SYSTEMROOT%, потому, что на другом компьютере система может быть установлена в другой каталог или на другой диск. Старайтесь вместо имени командного файла использовать переменную %0 и ее подстановочные варианты (%~d0 – диск с которого запущен сценарий, %~dp0 – полный путь и т.д.).
Строки с переменными, принимающими значения имен файлов и каталогов лучше заключать в кавычки. Командная строка
не выдаст вам содержимого каталога C:Program Files , поскольку из-за наличия пробела будет интерпретирована как
Старайтесь использовать команды Setlocal и Endlocal, чтобы не оставлять мусор из переменных, созданных или модифицированных командным файлом.
Использование командных файлов в сценариях регистрациипользователей .
Командные файлыудобно использовать для выполнения каких-либодействий при регистрации пользователя вдомене. Делается это с помощью вкладки Profile свойств пользователя домена.
Сами командные файлы должнынаходиться в сетевой папке Netlogon (WINDOWSSYSVOL DOMAINSCRIPTS) контроллера домена.
Однако наиболее распространенной областью применения командных файлов является их использование в сценариях групповых политик, позволяющих централизованно выполнять административные действия по управлению большим количеством компьютеров и пользователей в домене, что значительно облегчает работу системных администраторов крупных компьютерных сетей.
Дополнительные материалы по командной строке Windows:
Список команд, используемых в командной строке Windows. Имена большинства команд представляют собой ссылку на страницы с их описанием и примерами.
Настройка окна командной строки Windows. Малоизвестные возможности изменения свойств консоли Windows.
Работа с сетью в командной строке Windows – Описание и примеры использования утилит командной строки для работы с сетью.