Главная / Операционные системы /
Командная строка и сценарии Windows / Тест 2
Упражнение 1:
Номер 1
В каком каталоге в Windows XP хранится файл cmd.exe?
Ответ:
(1) %SystemRoot%
(2) %SystemRoot%System32
(3) %SystemRoot%System
Номер 2
Как назывался файл командного интерпретатора в Windows 98?
Ответ:
(1) command.com
(2) cmd.exe
(3) win.com
Номер 3
С помощью каких символов можно перенаправить выходной поток команды во внешний файл с сохранением прежнего содержимого этого файла?
Ответ:
(1) <<
(2) >>
(3) |
Упражнение 2:
Номер 1
Какой командой интерпретатораCmd.exe
можно создать файлDir_Help.txt
с описанием командыDIR
?
Ответ:
(1) dir /? | Dir_Help.txt
(2) dir > Dir_Help.txt
(3) dir /? > Dir_Help.txt
(4) dir /? & Dir_Help.txt
Номер 2
Какой командой интерпретатораCmd.exe
можно создать файлxcopy_help.txt
с описанием всех параметров командыXCOPY
?
Ответ:
(1) xcopy -help > xcopy_help.txt
(2) xcopy /? > xcopy_help.txt
(3) xcopy /? & xcopy_help.txt
(4) xcopy /? | xcopy_help.txt
Номер 3
Какой командой интерпретатораCmd.exe
можно создать файлDir_Help.txt
с описанием командыDIR
?
Ответ:
(1) dir -? | Dir_Help.txt
(2) dir -? > Dir_Help.txt
(3) dir /? > Dir_Help.txt
(4) dir /? & Dir_Help.txt
Упражнение 3:
Номер 1
Пусть текущим каталогом является C:folder1folder2folder3. Каким командами можно переместиться в корневой каталог диска C?
Ответ:
(1) cd
(2) cd c:
(3) cd c:
(4) cd ......
Номер 2
Пусть текущим каталогом является C:folder1folder2folder3, а в каталоге folder2 имеется еще один подкаталог folder4. Какими командами можно переместиться в каталог folder4?
Ответ:
(1) cd c:folder1folder2folder4
(2) cd ..folder4
(3) cd .folder4
(4) cd c:folder1folder2folder4
Номер 3
Пусть текущим каталогом является C:folder1folder2folder3. Какой командой можно удалить файл 123.txt в каталоге folder1?
Ответ:
(1) del c:folder1123.txt
(2) del c:folder1123.txt
(3) del ....123.txt
(4) del ..123.txt
Упражнение 4:
Номер 1
Что выведется на экран в результате выполнения команды: echo 1111 > c:klop.txt & type c:klop.txt > nul && echo 2222
?
Ответ:
(1) ничего не выведется
(2) строка 2222
(3) строки 1111 и 2222
Номер 2
Что выведется на экран в результате выполнения команды: echo 1111 > c:klop.txt & type c:klop.txt > nul || echo 2222
?
Ответ:
(1) ничего не выведется
(2) строка 2222
(3) строки 1111 и 2222
Номер 3
Что выведется на экран в результате выполнения команды: echo 1111 > c:klop.txt & type c:klop.txt > nul & echo 2222
?
Ответ:
(1) ничего не выведется
(2) строка 2222
(3) строки 1111 и 2222
Упражнение 5:
Номер 1
Какими командами можно изменить расширения на js для файлов, находящихся в текущем каталоге, имеющих расширение vbs и имя которых состоит только из одного или двух символов?
Ответ:
(1) ren ??.vbs ??.js
(2) ren ??.vbs *.js
(3) ren *.vbs *.js
(4) move ??.vbs *.js
Номер 2
Пусть в текущем каталоге на диске C: хранятся файлы с расширением vbs. Какими командами можно переместить эти файлы в каталог E:folder1 (с удалением первоначальных файлов)?
Ответ:
(1) ren *.vbs e:folder1
(2) move *.vbs e:folder1
(3) сopy *.vbs e:folder1
(4) copy *.vbs e:folder1 & del *.vbs
Номер 3
Пусть в текущем каталоге имеются текстовые файлы 1.txt и 2.txt. Требуется объединить эти два файла в файл 3.txt, причем строки результирующего файла 3.txt должны быть отсортированы по алфавиту. Какой командой можно это сделать?
Ответ:
(1) copy 1.txt + 2.txt temp.txt & sort temp.txt > 3.txt & del temp.txt
(2) copy 1.txt + 2.txt 3.txt & sort 3.txt > 3.txt
(3) sort 1.txt > 3.txt & sort 2.txt >> 3.txt
Упражнение 6:
Номер 1
Требуется сформировать файл doc_info.txt со списком всех файлов с расширением doc, находящихся в папке "C:Мои документы" и всех ее подпапках. Какой командой можно это сделать?
Ответ:
(1) dir /s /b C:Мои документы*.doc > doc_info.txt
(2) dir /b "C:Мои документы*.doc" > doc_info.txt
(3) dir /s /b "C:Мои документы*.doc" > doc_info.txt
Номер 2
Требуется сформировать файл hidden _info.txt со списком всех скрытых файлов, находящихся в папке "C:Мои документы" и всех ее подпапках. Какой командой можно это сделать?
Ответ:
(1) dir /s /a:h "C:Мои документы*.*" > hidden_info.txt
(2) dir /a:h "C:Мои документы*.*" > hidden_info.txt
(3) dir /s /a:h C:Мои документы*.* > hidden_info.txt
Номер 3
Требуется сформировать файл ro _info.txt со списком всех файлов, имеющих атрибут "Только для чтения", которые находятся в папке "C:Мои документы" и всех ее подпапках. Какой командой можно это сделать?
Ответ:
(1) dir /s /a:r "C:Мои документы*.*" > ro_info.txt
(2) dir /a:r "C:Мои документы*.*" > ro_info.txt
(3) dir /s /a:r C:Мои документы*.* > ro_info.txt
AUTOEXEC.BAT (от англ. automatic execution — автоматическое исполнение и англ. batch — пакет, группа) — системный пакетный файл (файл, содержащий последовательность команд на языке интерпретатора командной строки — поставляемого в составе MS-DOS COMMAND.COM или его клонов вроде 4DOS), расположенный в корневом каталоге загрузочного устройства (англ. Boot disk) (дискеты или диска). Впервые этот файл появился в операционной системе MS-DOS, а его имя является аббревиатурой и описывает его функцию — автоматическое исполнение команд при загрузке системы. Аббревиатура была необходима из-за ограничения 8.3 на длину имени файла (8 знаков собственно имени и 3 знака расширения) в файловой системе FAT[1].
AUTOEXEC.BAT ничем не отличается от прочих пакетных файлов (в отличие от другого файла конфигурирования DOS, Windows 9x и OS/2 — CONFIG.SYS). Как правило, он используется в DOS для установки ключевых переменных окружения (таких как PATH), загрузки драйверов и резидентных программ (SMARTDRV.EXE, MSCDEX, дра́йвера мыши, программ русификации клавиатуры и экрана и т. п.), а также запуска утилит конфигурации (например, для настройки параметров звуковых карт) и проверки системы (например, антивирусных сканеров).
ИспользованиеПравить
MS-DOSПравить
В MS-DOS AUTOEXEC.BAT исполняется после старта командного интерпретатора, который загружается после обработки команд из файла конфигурации CONFIG.SYS. С помощью директивы shell=
в CONFIG.SYS можно задействовать командный интерпретатор, отличный от COMMAND.COM, и/или указать имя для стартового пакетного файла, отличное от AUTOEXEC.BAT. При отсутствии файла AUTOEXEC.BAT (или при отмене его исполнения) в большинстве версий DOS командный интерпретатор запрашивает у пользователя текущие дату и время.[2]
Начиная с MS-DOS 6.0,[3] появилась возможность пропустить исполнение AUTOEXEC.BAT с помощью функциональных клавиш F5 и F8 (для этого в COMMAND.COM ввели поддержку опций /Y и /D), но с помощью директивы switches=
в файле CONFIG.SYS эти клавиши можно заблокировать.[4]
Клоны MS-DOSПравить
Клоны MS-DOS кроме файла AUTOEXEC.BAT могут использовать файлы и с другими именами, что облегчает сосуществование разных версий DOS на одном диске. Например, в Caldera DR-DOS 7 вместо AUTOEXEC.BAT исполняется файл AUTODOS7.BAT[5], если такой имеется на диске.
Windows 95 и Windows 98 (MS-DOS 7.x)Править
Windows 95 и Windows 98 основаны на MS-DOS 7.x и работа с AUTOEXEC.BAT в этих операционных системах происходит так же, как и в предыдущих версиях MS-DOS. Отличие же MS-DOS 7.x от предыдущих версий заключается в том, что по окончании исполнения AUTOEXEC.BAT автоматически запускается графическая оболочка, а не выводится командная строка. Однако, с помощью настройки BootGUI
в файле MSDOS.SYS это можно отменить, и тогда пользователь, как и ранее, будет оставаться в командной строке, из которой графическую оболочку можно запустить вручную командой WIN.[6]
Двойная загрузка DOS и Windows 9xПравить
При установке Windows 9x поверх уже установленной DOS или Windows файл AUTOEXEC.BAT (так же, как CONFIG.SYS и системные исполняемые файлы IO.SYS, MSDOS.SYS и COMMAND.COM) переименовывается в AUTOEXEC.DOS.[7] Это делается с целью облегчения двойной загрузки между Windows 9x и DOS: при загрузке в предыдущую версию системы (через выбор соответствующего пункта из стартового меню Windows, вызываемого клавишей F8, или через нажатие клавиши F4 при старте системы), этот файл временно, до следующей перезагрузки, переименовывается обратно, а файл AUTOEXEC.BAT, созданный для Windows 9x, переименовывается в AUTOEXEC.W40.[8] (При этом файл IO.SYS в Windows 95 переименовывается в WINBOOT.SYS, а в Windows 98/ME — в JO.SYS).[8][9][10]
Перезагрузка в режиме MS-DOS из-под WindowsПравить
При выборе пункта «перезагрузить компьютер в режиме MS-DOS» (англ. Restart the computer in MS-DOS mode) в диалоге «Завершение работы Windows» (англ. Shut Down Windows) или при запуске DOS-приложения через ярлык в Windows 9x имеется возможность задать конфигурацию (CONFIG.SYS и AUTOEXEC.BAT), отличную от основной конфигурации.[11][12][13][14]
При перезагрузке компьютера через выбор пункта «перезагрузить компьютер в режиме MS-DOS» в диалоге «Завершение работы Windows», Windows закрывает все запущенные программы и выгружает себя из памяти, после чего выходит в командную строку в реальном режиме. Если в свойствах (закладка «Программа», кнопка «Дополнительно») файла Exit to DOS.pif (Выход в Dos.PIF в русской версии Windows), который находится в каталоге Windows и управляет перезагрузкой в режим MS-DOS, выбрана опция «Использовать текущую конфигурацию MS-DOS» (англ. Use Current MS-DOS Configuration), то исполняется файл DOSSTART.BAT. В противном случае, если выбрана опция «Выбрать новую конфигурацию MS-DOS» (англ. Specify A New MS-DOS Configuration), вместо основных CONFIG.SYS и AUTOEXEC.BAT используются файлы с содержанием, указанным в тех же настройках. Для возврата к Windows после перезапуска компьютера в режиме MS-DOS нужно выполнить команду exit
в командной строке.
При запуске через ярлык программы, настроенной на запуск в режиме MS-DOS со своей конфигурацией (закладка «Программ», кнопка «Дополнительно», опция «Выбрать новую конфигурацию MS-DOS»), файлы CONFIG.SYS и AUTOEXEC.BAT переименовываются в файлы CONFIG.WOS и AUTOEXEC.WOS (в случае отсутствия этих файлов создаются файлы нулевой длины). После чего создаются новые файлы CONFIG.SYS и AUTOEXEC.BAT и туда копируются строки, указанные в настройках ярлыка. При этом первой строкой нового CONFIG.SYS будет строка dos=single
, а последней строкой AUTOEXEC.BAT — <windir>win.com /wx
» (где вместо <windir> записывается путь к каталогу Windows). Также, файл AUTOEXEC.BAT будет содержать команды CD
для перехода в каталог с программой и CALL
для запуска программы. Далее Windows перезапускает компьютер и, обнаружив файлы CONFIG.WOS и AUTOEXEC.WOS, IO.SYS при загрузке системы выдаёт сообщение «Windows 95/98 is now starting your MS-DOS-based program».
Опция /wx в команде запуска win.com заставляет Windows переименовать CONFIG.SYS и AUTOEXEC.BAT в CONFIG.APP и AUTOEXEC.APP, вернуть исходные файлы CONFIG.SYS и AUTOEXEC.BAT из файлов CONFIG.WOS и AUTOEXEC.WOS и перезагрузиться. После перезагрузки, при старте Windows, содержимое файлов CONFIG.APP и AUTOEXEC.APP копируется обратно в свойства DOS-программы, которая и была запущена в режиме MS-DOS.
Windows ME (MS-DOS 8.0)Править
В Windows ME в файле AUTOEXEC.BAT игнорируются все команды, кроме команд установки переменных окружения[15], однако известны способы обхода этого ограничения[16].
Семейство Windows NTПравить
В операционных системах семейства Windows NT AUTOEXEC.BAT обрабатывается при входе пользователя в систему, и, как и в Windows ME, в нём игнорируются все команды, кроме команд установки переменных окружения (PATH
, PROMPT
и SET
).[17] После обработки переменные из AUTOEXEC.BAT добавляются к переменным, заданным в реестре (в том числе, содержимое переменной PATH
дописывается к содержимому, сформированному Windows). Обработку AUTOEXEC.BAT можно отменить, установив в 0 значение ключа реестра HKCUSoftwareMicrosoftWindows NTCurrentVersionWinlogonParseAutoexec.[18]
OS/2Править
В операционных системах семейства OS/2 файл AUTOEXEC.BAT отрабатывается при запуске сессии DOS в Virtual DOS Machine.[19]
Другие автостартующие пакетные файлы системыПравить
Файл autoexec.ntПравить
В операционных системах семейства Windows NT файл AUTOEXEC.BAT используется только для чтения переменных окружения. При старте DOS-сессий (для запуска в режиме эмуляции приложений, написанных для DOS) вместо него исполняется файл autoexec.nt, расположенный в %systemroot%System32. Синтаксис этого файла похож на синтаксис AUTOEXEC.BAT, но исполняется он без вывода сообщений о программах и командах на консоль (если только в файле config.nt не дана команда echoconfig[20]). Помимо этого, в свойствах ярлыка (pif-файла) для DOS-приложения можно задать собственные файлы config.nt и autoexec.nt (англ. Custom MS-DOS initialization files).
Файлы WINSTART.BAT и DOSSTART.BATПравить
В Windows 3.x и операционных системах Windows 95 и Windows 98 файл WINSTART.BAT, располагающийся в каталоге Windows (указывается в переменной окружения %windir%), исполняется непосредственно перед стартом графической оболочки.[21]
Файл DOSSTART.BAT, добавленный в Windows 95 и Windows 98 и располагающийся также в каталоге Windows, исполняется при выходе из графической оболочки в режим командной строки.[22]
Меню конфигурацийПравить
Начиная с MS-DOS 6.0 появилась возможность в CONFIG.SYS описывать меню для выбора одной из нескольких конфигураций.[23] При выборе пункта меню имя секции с описанием требуемой конфигурации, указанное в этом пункте, сохраняется в переменной окружения CONFIG
. Это позволяет с помощью команд goto %CONFIG%
и if "%CONFIG%"==
в AUTOEXEC.BAT (и в прочих пакетных файлах) выполнять разные действия в зависимости от выбора конфигурации при загрузке.
Пример файла AUTOEXEC.BATПравить
@ECHO OFF REM C:WINDOWSSMARTDRV.EXE C:WINDOWSSMARTDRV.EXE 2038 512 PROMPT $p$g PATH C:DOS;C:WINDOWS;C:LWORKS;C:EXPLORER.4LC SET TEMP=C:DOS MODE LPT1:,,P >nul C:DOSSHARE.EXE /F:150 /L:1500 C:WINDOWSmouse.COM /Y cd windows WIN
В этом примере можно видеть отключение эха (дублирование обрабатываемых строк на экран), запуск драйвера SMARTDRV (одна строка закомментирована, в другой SMARTDRV запускается с аргументами), установку переменных окружения (PROMPT
, PATH
, TEMP
), запуск резидентной программы (MODE) и других драйверов (SHARE и MOUSE), и, наконец, переход в каталог windows (CD
) и запуск собственно Windows (WIN).
AUTOEXEC.BAT в культуреПравить
Файл AUTOEXEC.BAT — один из немногих файлов, которые удостоились упоминания в известном художественном произведении. В повести Виктора Пелевина «Принц Госплана» AUTOEXEC.BAT играет важную роль. В первый раз упоминание о нём появляется в третьей главе (Level 3).[24] Главный герой советует «командировочному из Пензы», прибывшему в Госснаб по каким-то делам и играющему между делом на компьютере в Starglider, вписать в «автоэкзэк» команду вызова игры, что может помочь возродиться в случае гибели в игре:[25]
Саша пересел за соседний компьютер, вышел на драйв «а», из которого торчала поганая болгарская дискета гостя, и вызвал игру. Дисковод тихо зажужжал, и через несколько секунд в кресле снова появился мужик из Пензы.
— Когда на вас ракеты летят, — сказал Саша, — вы на высоту лучше уходите. Из лазера больше одной не собьёшь, а эта штука пачками бьёт.
— Ты не учи, не учи, — огрызнулся тот, припадая к клавиатуре, — не первый год в дальнем космосе.
— Тогда автоэкзэк себе сделайте, — сказал Саша, — а то вас каждый раз вызывать времени ни у кого нет.
Гость не отзывался — на него шли сразу два шагающих танка, и ему было не до болтовни.
Во второй раз AUTOEXEC.BAT спасает самого главного героя. Четвёртая глава (Level 4) описывает поездку героя в Госплан на метро, где он погибает, попав на эскалаторе на одно из стандартных препятствий игры Prince of Persia, так называемую «разрезалку пополам»: два зазубренных лезвия, которые выскакивают из пола и потолка навстречу друг другу и сталкиваются с характерным лязгом. При попадании Саши в разрезалку глава обрывается многоточием на полуслове внутреннего монолога героя, после чего следуют заголовки AUTOEXEC.BAT, LEVEL 4 и четвёртая глава начинается снова. Постепенно в её текст вкрадываются модификации, а лица некоторых пассажиров кажутся Саше странно знакомыми. В этом варианте главы Саша поднимается по другому эскалатору, видит разрезалку пополам, заработавшую на соседнем эскалаторе, и радуется, что ему удалось её избежать.
ПримечанияПравить
- ↑ KB100108: Обзор файловых систем FAT, HPFS и NTFS (недоступная ссылка — история). Microsoft (23 декабря 2005). Дата обращения: 21 декабря 2008. Архивировано 21 января 2012 года.
- ↑ KB95554: Not Using the /P Switch with the SHELL Command (англ.) (недоступная ссылка — история). Microsoft (18 января 2007). Дата обращения: 21 декабря 2008. Архивировано 27 января 2012 года.
- ↑ KB96710: How Do I Get MS-DOS to Run in the High Memory Area? (англ.) (недоступная ссылка — история). Microsoft (12 мая 2003). Дата обращения: 21 декабря 2008. Архивировано 21 января 2012 года.
При использовании MS-DOS 6.0 или 6.2 … не требуется создавать загрузочный диск, поскольку при загрузке можно воспользоваться клавишей F8 для пропуска команд в CONFIG.SYS, если они подвешивают систему.
If you are using MS-DOS 6.0 or 6.2 … You do not need to create a startup floppy disk because you can use the MS-DOS interactive startup key (F8) to bypass commands in your CONFIG.SYS file if they cause your system to stop responding (hang).
- ↑ KB93602: How to Disable F5 and F8 During Startup in MS-DOS (англ.) (недоступная ссылка — история). Microsoft (16 ноября 1999). Дата обращения: 21 декабря 2008. Архивировано 21 января 2012 года.
- ↑ Chapter 1. Introduction to Caldera DR-DOS. Features of Caldera DR-DOS (англ.) (недоступная ссылка — история). Caldera DR-DOS Quick Start Guide. Caldera Thin Clients (1998). Дата обращения: 21 декабря 2008. Архивировано 21 января 2012 года.
- ↑ KB141721: How to Boot to a Command Prompt by Default (англ.) (недоступная ссылка — история). Microsoft (19 января 2007). Дата обращения: 21 декабря 2008. Архивировано 21 января 2012 года.
- ↑ KB121963: Requirements to Boot Previous Operating System (англ.) (недоступная ссылка — история). Microsoft (10 мая 2007). Дата обращения: 7 июня 2009. Архивировано 21 января 2012 года.
- ↑ 1 2 MDGx / AXCEL216. The renaming game (англ.). Windows 95/98/NT4/2000/ME/XP/2003 + DOS 7.xx/8.00 Tricks + Secrets Files. Дата обращения: 7 июня 2009. Архивировано 17 мая 2008 года.
- ↑ KB187641: Err Msg: The Following File Is Missing or Corrupt… (англ.) (недоступная ссылка — история). Microsoft (23 января 2007). — «The Jo.sys file is used by Windows 98 and Windows Me in a dual-boot environment with MS-DOS». Дата обращения: 7 июня 2009. Архивировано 21 января 2012 года.
- ↑ См. также: Bart’s free JO.SYS (англ.) (недоступная ссылка — история) (12 марта 2002). — Альтернативный вариант JO.SYS. Дата обращения: 7 июня 2009. Архивировано 21 января 2012 года.
- ↑ KB138996: Description of Restarting Computer in MS-DOS Mode (англ.) (недоступная ссылка — история). Microsoft (19 января 2007). Дата обращения: 21 декабря 2008. Архивировано 21 января 2012 года.
- ↑ KB134400: General Tips for Using MS-DOS Mode (англ.) (недоступная ссылка — история). Microsoft (19 января 2007). Дата обращения: 21 декабря 2008. Архивировано 21 января 2012 года.
- ↑ KB130448: Cannot Quit MS-DOS Mode (англ.) (недоступная ссылка — история). Microsoft (19 января 2007). Дата обращения: 21 декабря 2008. Архивировано 21 января 2012 года.
- ↑ KB151717: Cannot Exit MS-DOS Mode (англ.) (недоступная ссылка — история). Microsoft (19 января 2007). Дата обращения: 21 декабря 2008. Архивировано 21 января 2012 года.
- ↑ KB269524: Overview of Real Mode Removal from Windows Millennium Edition (англ.) (недоступная ссылка — история). Microsoft (27 января 2007). Дата обращения: 21 декабря 2008. Архивировано 21 января 2012 года.
- ↑ Reines [MFD]. Real DOS-Mode Patch for Windows ME v1.3 (англ.) (15 августа 2000). Дата обращения: 21 декабря 2008. Архивировано из оригинала 17 августа 2000 года.
- ↑ Appendix B. Other Application Environments (англ.) (недоступная ссылка — история). Библиотека TechNet. Microsoft. — Окружение для приложений Windows 3.x, MS-DOS и OS/2 в Windows NT. Дата обращения: 21 декабря 2008. Архивировано 21 января 2012 года.
- ↑ KB124551: INFO: Configuring Parsing of the AUTOEXEC.BAT File (англ.) (недоступная ссылка — история). Microsoft (20 марта 2007). Дата обращения: 21 декабря 2008. Архивировано 21 января 2012 года.
- ↑ Общая часть. Статья 097. OS/2 General FAQ. Russian Underground/2. — Советы по настройкам в AUTOEXEC.BAT. Дата обращения: 8 апреля 2012. Архивировано из оригинала 15 августа 2012 года.
- ↑ Windows XP / Echoconfig (англ.) (недоступная ссылка — история). TechNet Library. Microsoft. Дата обращения: 21 декабря 2008. Архивировано 21 января 2012 года.
- ↑ KB69186: WINSTART.BAT Won’t Load Microsoft LAN Manager Driver (англ.) (недоступная ссылка — история). Microsoft (16 ноября 2006). Дата обращения: 21 декабря 2008. Архивировано 21 января 2012 года.
- ↑ KB141308: How to Run Automatic Commands When Starting in MS-DOS Mode (англ.) (недоступная ссылка — история). Microsoft (18 января 2007). Дата обращения: 21 декабря 2008. Архивировано 21 января 2012 года.
- ↑ Batch Commands (недоступная ссылка — история). TechNet Archive → MS-DOS. Microsoft. Дата обращения: 7 августа 2020. Архивировано 27 января 2012 года.
- ↑ Повесть, герои которой живут на границе между реальностью и виртуальным миром компьютерных игр, состоит из введения (Loading…) и глав (Level 1, Level 2 и т. д.). Главный герой Саша играет в игру Prince of Persia, на которую и намекает название повести.
- ↑
Пелевин В. Level 3 // Принц Госплана.
ЛитератураПравить
- В.Э.Фигурнов. Часть 3. Основы работы в среде MS DOS // IBM PC для пользователя. — М.: Инфра-М, 1999. — ISBN 5-86225-471-4.
Filename extensions | .bat , .cmd , .btm |
---|---|
Internet media type |
|
Type of format | Scripting |
Container for | Scripts |
A batch file is a script file in DOS, OS/2 and Microsoft Windows. It consists of a series of commands to be executed by the command-line interpreter, stored in a plain text file. A batch file may contain any command the interpreter accepts interactively and use constructs that enable conditional branching and looping within the batch file, such as IF
, FOR
, and GOTO
labels. The term «batch» is from batch processing, meaning «non-interactive execution», though a batch file might not process a batch of multiple data.
Similar to Job Control Language (JCL), DCL and other systems on mainframe and minicomputer systems, batch files were added to ease the work required for certain regular tasks by allowing the user to set up a script to automate them. When a batch file is run, the shell program (usually COMMAND.COM or cmd.exe) reads the file and executes its commands, normally line-by-line.[1] Unix-like operating systems, such as Linux, have a similar, but more flexible, type of file called a shell script.[2]
The filename extension .bat is used in DOS and Windows. Windows NT and OS/2 also added .cmd. Batch files for other environments may have different extensions, e.g., .btm in 4DOS, 4OS2 and 4NT related shells.
The detailed handling of batch files has changed significantly between versions. Some of the detail in this article applies to all batch files, while other details apply only to certain versions.
Variants[edit]
DOS[edit]
In MS-DOS, a batch file can be started from the command-line interface by typing its name, followed by any required parameters and pressing the ↵ Enter key. When DOS loads, the file AUTOEXEC.BAT, when present, is automatically executed, so any commands that need to be run to set up the DOS environment may be placed in this file. Computer users would have the AUTOEXEC.BAT file set up the system date and time, initialize the DOS environment, load any resident programs or device drivers, or initialize network connections and assignments.
A .bat file name extension identifies a file containing commands that are executed by the command interpreter COMMAND.COM line by line, as if it were a list of commands entered manually, with some extra batch-file-specific commands for basic programming functionality, including a GOTO
command for changing flow of line execution.
Early Windows[edit]
Microsoft Windows was introduced in 1985 as a graphical user interface-based (GUI) overlay on text-based operating systems and was designed to run on DOS. In order to start it, the WIN
command was used, which could be added to the end of the AUTOEXEC.BAT file to allow automatic loading of Windows. In the earlier versions, one could run a .bat type file from Windows in the MS-DOS Prompt. Windows 3.1x and earlier, as well as Windows 9x invoked COMMAND.COM to run batch files.
OS/2[edit]
The IBM OS/2 operating system supported DOS-style batch files. It also included a version of REXX, a more advanced batch-file scripting language. IBM and Microsoft started developing this system, but during the construction of it broke up after a dispute; as a result of this, IBM referred to their DOS-like console shell without mention of Microsoft, naming it just DOS, although this seemingly made no difference with regard to the way batch files worked from COMMAND.COM.
OS/2’s batch file interpreter also supports an EXTPROC command. This passes the batch file to the program named on the EXTPROC file as a data file. The named program can be a script file; this is similar to the #! mechanism used by Unix-like operating systems.
Windows NT[edit]
Unlike Windows 98 and earlier, the Windows NT family of operating systems does not depend on MS-DOS. Windows NT introduced an enhanced 32-bit command interpreter (cmd.exe) that could execute scripts with either the .CMD or .BAT extension. Cmd.exe added additional commands, and implemented existing ones in a slightly different way, so that the same batch file (with different extension) might work differently with cmd.exe and COMMAND.COM. In most cases, operation is identical if the few unsupported commands are not used. Cmd.exe’s extensions to COMMAND.COM can be disabled for compatibility.
Microsoft released a version of cmd.exe for Windows 9x and ME called WIN95CMD to allow users of older versions of Windows to use certain cmd.exe-style batch files.
As of Windows 8, cmd.exe is the normal command interpreter for batch files; the older COMMAND.COM can be run as well in 32-bit versions of Windows able to run 16-bit programs.[nb 1]
Filename extensions[edit]
- .bat
- The first filename extension used by Microsoft for batch files. This extension runs with DOS and all versions of Windows, under COMMAND.COM or cmd.exe, despite the different ways the two command interpreters execute batch files.
- .cmd
- Used for batch files in Windows NT family and sent to cmd.exe for interpretation. COMMAND.COM does not recognize this file name extension, so cmd.exe scripts are not executed in the wrong Windows environment by mistake. In addition,
append
,dpath
,ftype
,set
,path
,assoc
andprompt
commands, when executed from a .bat file, alter the value of theerrorlevel
variable only upon an error, whereas from within a .cmd file, they would affect errorlevel even when returning without an error.[3] It is also used by IBM’s OS/2 for batch files. - .btm
- The extension used by 4DOS, 4OS2, 4NT and Take Command. These scripts are faster, especially with longer ones, as the script is loaded entirely ready for execution, rather than line-by-line.[4]
Batch file parameters[edit]
COMMAND.COM and cmd.exe support special variables (%0
, %1
through %9
) in order to refer to the path and name of the batch job and the first nine calling parameters from within the batch job, see also SHIFT. Non-existent parameters are replaced by a zero-length string. They can be used similar to environment variables, but are not stored in the environment. Microsoft and IBM refer to these variables as replacement parameters or replaceable parameters, whereas Digital Research, Novell and Caldera established the term replacement variables[5] for them. JP Software calls them batch file parameters.[6]
Examples[edit]
This example batch file displays Hello World!
, prompts and waits for the user to press a key, and then terminates. (Note: It does not matter if commands are lowercase or uppercase unless working with variables)
@ECHO OFF ECHO Hello World! PAUSE
To execute the file, it must be saved with the filename extension suffix .bat (or .cmd for Windows NT-type operating systems) in plain text format, typically created by using a text editor such as Microsoft Notepad or a word processor working in plain text mode.
When executed, the following is displayed:
Hello World! Press any key to continue . . .
Explanation[edit]
The interpreter executes each line in turn, starting with the first. The @
symbol at the start of any line prevents the prompt from displaying that command as it is executed. The command ECHO OFF
turns off the prompt permanently, or until it is turned on again. The combined @ECHO OFF
is often as here the first line of a batch file, preventing any commands from displaying, itself included. Then the next line is executed and the ECHO Hello World!
command outputs Hello World!
. The next line is executed and the PAUSE
command displays Press any key to continue . . .
and pauses the script’s execution. After a key is pressed, the script terminates, as there are no more commands. In Windows, if the script is executed from an already running command prompt window, the window remains open at the prompt as in MS-DOS; otherwise, the window closes on termination.
Limitations and exceptions[edit]
Null values in variables[edit]
Variable expansions are substituted textually into the command, and thus variables which contain nothing simply disappear from the syntax, and variables which contain spaces turn into multiple tokens. This can lead to syntax errors or bugs.
For example, if %foo% is empty, this statement:
parses as the erroneous construct:
Similarly, if %foo%
contains abc def
, then a different syntax error results:
IF abc def==bar ECHO Equal
The usual way to prevent this problem is to surround variable expansions in quotes so that an empty variable expands into the valid expression IF ""=="bar"
instead of the invalid IF ==bar
. The text that is being compared to the variable must also be enclosed in quotes, because the quotes are not special delimiting syntax; these characters represent themselves.
IF "%foo%"=="bar" ECHO Equal
The delayed !VARIABLE! expansion available in Windows 2000 and later may be used to avoid these syntactical errors. In this case, null or multi-word variables do not fail syntactically because the value is expanded after the IF command is parsed:
Another difference in Windows 2000 or higher is that an empty variable (undefined) is not substituted. As described in previous examples, previous batch interpreter behaviour would have resulted in an empty string. Example:
C:>set MyVar= C:>echo %MyVar% %MyVar% C:>if "%MyVar%"=="" (echo MyVar is not defined) else (echo MyVar is %MyVar%) MyVar is %MyVar%
Batch interpreters prior to Windows 2000 would have displayed result MyVar is not defined
.
Quotation marks and spaces in passed strings[edit]
Unlike Unix/POSIX processes, which receive their command-line arguments already split up by the shell into an array of strings, a Windows process receives the entire command-line as a single string, via the GetCommandLine API function. As a result, each Windows application can implement its own parser to split the entire command line into arguments. Many applications and command-line tools have evolved their own syntax for doing that, and so there is no single convention for quoting or escaping metacharacters on Windows command lines.
- For some commands, spaces are treated as delimiters that separate arguments, unless those spaces are enclosed by quotation marks. Various conventions exist of how quotation marks can be passed on to the application:
- A widely used convention is implemented by the command-line parser built into the Microsoft Visual C++ runtime library in the CommandLineToArgvW function. It uses the convention that 2n backslashes followed by a quotation mark («) produce n backslashes followed by a begin/end quote, whereas (2n)+1 backslashes followed by a quotation mark again produce n backslashes followed by a quotation mark literal. The same convention is part of the .NET Framework specification.[7]
- An undocumented aspect is that «» occurring in the middle of a quoted string produces a single quotation mark.[7] (A CRT change in 2008 [msvcr90] modified this undocumented handling of quotes.[8]) This is helpful for inserting a quotation mark in an argument without re-enabling interpretation of cmd metacharacters like |, & and >. (cmd does not recognize the usual « as escaping the quote. It re-enables these special meanings on seeing the quote, thinking the quotation has ended.)
- Another convention is that a single quotation mark («) is not included as part of the string. However, an escaped quotation mark («»») can be part of the string.[citation needed]
- Yet another common convention comes from the use of Cygwin-derived ported programs. It does not differentiate between backslashes occurring before or not before quotes. See glob (programming) § Windows and DOS for information on these alternative command-line parsers.[9]
- Some important Windows commands, like
cmd.exe
andwscript.exe
, use their own rules.[8]
- A widely used convention is implemented by the command-line parser built into the Microsoft Visual C++ runtime library in the CommandLineToArgvW function. It uses the convention that 2n backslashes followed by a quotation mark («) produce n backslashes followed by a begin/end quote, whereas (2n)+1 backslashes followed by a quotation mark again produce n backslashes followed by a quotation mark literal. The same convention is part of the .NET Framework specification.[7]
- For other commands, spaces are not treated as delimiters and therefore do not need quotation marks. If quotes are included they become part of the string. This applies to some built-in commands like echo.
Where a string contains quotation marks, and is to be inserted into another line of text that must also be enclosed in quotation marks, particular attention to the quoting mechanism is required:
C:>set foo="this string is enclosed in quotation marks" C:>echo "test 1 %foo%" "test 1 "this string is enclosed in quotation marks"" C:>eventcreate /T Warning /ID 1 /L System /SO "Source" /D "Example: %foo%" ERROR: Invalid Argument/Option - 'string'. Type "EVENTCREATE /?" for usage.
On Windows 2000 and later, the solution is to replace each occurrence of a quote character within a value by a series of three quote characters:
C:>set foo="this string is enclosed in quotes" C:>set foo=%foo:"="""% C:>echo "test 1 %foo%" "test 1 """this string is enclosed in quotes"""" C:>eventcreate /T Warning /ID 1 /L System /SO "Source" /D "Example: %foo%" SUCCESS: A 'Warning' type event is created in the 'Source' log/source.
Escaped characters in strings[edit]
Some characters, such as pipe (|
) characters, have special meaning to the command line. They cannot be printed as text using the ECHO command unless escaped using the caret ^ symbol:
C:>Echo foo | bar 'bar' is not recognized as an internal or external command, operable program or batch file. C:>Echo foo ^| bar foo | bar
However, escaping does not work as expected when inserting the escaped character into an environment variable. The variable ends up containing a live pipe command when merely echoed. It is necessary to escape both the caret itself and the escaped character for the character display as text in the variable:
C:>set foo=bar | baz 'baz' is not recognized as an internal or external command, operable program or batch file. C:>set foo=bar ^| bar C:>echo %foo% 'baz' is not recognized as an internal or external command, operable program or batch file. C:>set foo=bar ^^^| baz C:>echo %foo% bar | baz
The delayed expansion available with or with in Windows 2000 and later may be used to show special characters stored in environment variables because the variable value is expanded after the command was parsed:
C:>cmd /V:ON Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:>set foo=bar ^| baz C:>echo !foo! bar | baz
Sleep or scripted delay[edit]
Until the TIMEOUT command was introduced with Windows Vista, there was no easy way to implement a timed pause, as the PAUSE command halts script activity indefinitely until any key is pressed.
Many workarounds were possible,[10] but generally only worked in some environments: The CHOICE
command was not available in older DOS versions, PING
was only available if TCP/IP was installed, and so on. No solution was available from Microsoft, but a number of small utility programs, could be installed from other sources. A commercial example would be the 1988 Norton Utilities Batch Enhancer (BE) command, where BE DELAY 18
would wait for 1 second, or the free 94-byte WAIT.COM[11] where WAIT 5
would wait for 5 seconds, then return control to the script. Most such programs are 16-bit .COM files, so are incompatible with 64-bit Windows.
Text output with stripped CR/LF[edit]
Normally, all printed text automatically has the control characters for carriage return (CR) and line feed (LF) appended to the end of each line.
- batchtest.bat
-
C:>batchtest.bat foo bar
-
It does not matter if the two echo commands share the same command line; the CR/LF codes are inserted to break the output onto separate lines:
C:>@echo Message 1&@echo Message 2 Message 1 Message 2
A trick discovered with Windows 2000 and later is to use the special prompt for input to output text without CR/LF trailing the text. In this example, the CR/LF does not follow Message 1, but does follow Line 2 and Line 3:
- batchtest2.bat
-
@echo off set /p ="Message 1"<nul echo Message 2 echo Message 3
-
C:>batchtest2.bat Message 1Message 2 Message 3
-
This can be used to output data to a text file without CR/LF appended to the end:
C:>set /p ="Message 1"<nul >data.txt C:>set /p ="Message 2"<nul >>data.txt C:>set /p ="Message 3"<nul >>data.txt C:>type data.txt Message 1Message 2Message 3
However, there is no way to inject this stripped CR/LF prompt output directly into an environment variable.
Setting a Uniform Naming Convention (UNC) working directory from a shortcut[edit]
It is not possible to have a command prompt that uses a UNC path as the current working directory; e.g. \serversharedirectory
The command prompt requires the use of drive letters to assign a working directory, which makes running complex batch files stored on a server UNC share more difficult. While a batch file can be run from a UNC file path, the working directory default is C:WindowsSystem32
.
In Windows 2000 and later, a workaround is to use the PUSHD
and POPD
command with command extensions.[nb 2]
If not enabled by default, command extensions can be temporarily enabled using the /E:ON
switch for the command interpreter.
So to run a batch file on a UNC share, assign a temporary drive letter to the UNC share, and use the UNC share as the working directory of the batch file, a Windows shortcut can be constructed that looks like this:
- Target:
The working directory attribute of this shortcut is ignored.
This also solves a problem related to User Account Control (UAC) on Windows Vista and newer. When an administrator is logged on and UAC is enabled, and they try to run a batch file as administrator from a network drive letter, using the right-click file context menu, the operation will unexpectedly fail. This is because the elevated UAC privileged account context does not have network drive letter assignments, and it is not possible to assign drive letters for the elevated context via the Explorer shell or logon scripts. However, by creating a shortcut to the batch file using the above PUSHD
/ POPD
construct, and using the shortcut to run the batch file as administrator, the temporary drive letter will be created and removed in the elevated account context, and the batch file will function correctly.
The following syntax does correctly expand to the path of the current batch script.
%~dp0
UNC default paths are turned off by default as they used to crash older programs.[12]
The Dword registry value DisableUNCCheck
at HKEY_CURRENT_USERSoftwareMicrosoftCommand Processor
[12] allows the default directory to be UNC. CD
command will refuse to change but placing a UNC path in Default Directory in a shortcut to Cmd or by using the Start command. (C$
share is for administrators).
Character set[edit]
Batch files use an OEM character set, as defined by the computer, e.g. Code page 437. The non-ASCII parts of these are incompatible with the Unicode or Windows character sets otherwise used in Windows so care needs to be taken.[13] Non-English file names work only if entered through a DOS character set compatible editor. File names with characters outside this set do not work in batch files.
To get a command prompt with Unicode instead of Code page 437 or similar, one can use the cmd /U
command. In such a command prompt, a batch file with Unicode filenames will work. Also one can use cmd /U
to directly execute commands with Unicode as character set. For example, cmd /U /C dir > files.txt
creates a file containing a directory listing with correct Windows characters, in the UTF-16LE encoding.
Batch viruses and malware[edit]
As with any other programming language, batch files can be used maliciously. Simple trojans and fork bombs are easily created, and batch files can do a form of DNS poisoning by modifying the hosts file. Batch viruses are possible, and can also spread themselves via USB flash drives by using Windows’ Autorun capability.[14]
The following command in a batch file will delete all the data in the current directory (folder) — without first asking for confirmation:
These three commands are a simple fork bomb that will continually replicate itself to deplete available system resources, slowing down or crashing the system:
:TOP start "" %0 goto TOP
Other Windows scripting languages[edit]
The cmd.exe command processor that interprets .cmd files is supported in all 32- and 64-bit versions of Windows up to at least Windows 10. COMMAND.EXE, which interprets .BAT files, was supported in all 16- and 32-bit versions up to at least Windows 10.[nb 3]
There are other, later and more powerful, scripting languages available for Windows. However, these require the scripting language interpreter to be installed before they can be used:
- Extended Batch Language (EBL) (.bat) — developed by Frank Canova as an ‘own-time’ project while working at IBM in 1982. It was subsequently sold by Seaware Corp as an interpreter and compiler primarily for DOS, but later for Windows.
- KiXtart (.kix) — developed by a Microsoft employee in 1991, specifically to meet the need for commands useful in a network logon script while retaining the simple ‘feel’ of a .cmd file.
- Windows Script Host (.vbs , .js and .wsf) — released by Microsoft in 1998, and consisting of cscript.exe and wscript.exe, runs scripts written in VBScript or JScript. It can run them in windowed mode (with the wscript.exe host) or in console-based mode (with the cscript.exe host). They have been a part of Windows since Windows 98.
- PowerShell (.ps1) — released in 2006 by Microsoft and can operate with Windows XP (SP2/SP3) and later versions. PowerShell can operate both interactively (from a command-line interface) and also via saved scripts, and has a strong resemblance to Unix shells.[15]
- Unix-style shell scripting languages can be used if a Unix compatibility tool, such as Cygwin, is installed.
- Cross-platform scripting tools including Perl, Python, Ruby, Rexx, Node.js and PHP are available for Windows.
Script files run if the filename without extension is entered. There are rules of precedence governing interpretation of, say, DoThis
if DoThis.com
, DoThis.exe
, DoThis.bat
, DoThis.cmd
, etc. exist; by default DoThis.com
has highest priority. This default order may be modified in newer operating systems by the user-settable PATHEXT environment variable.
See also[edit]
- List of DOS commands
Notes[edit]
- ^ To verify that COMMAND.COM remains available (in the WINDOWSSYSTEM32 directory), type
COMMAND.COM
at the 32-bit Windows 7 command prompt. - ^ «If Command Extensions are enabled the PUSHD command accepts network paths in addition to the normal drive letter and path. If a network path is specified, PUSHD creates a temporary drive letter that points to that specified network resource and then change the current drive and directory, using the newly defined drive letter. Temporary drive letters are allocated from Z: on down, using the first unused drive letter found.» —The help for PUSHD in Windows 7
- ^ Availability of CMD.EXE and COMMAND.COM can be confirmed by invoking them in any version of Windows (COMMAND.COM not in 64-bit versions; probably only available in Windows 8 32-bit versions if installed with option to support 16-bit programs).
References[edit]
- ^ «Using batch files: Scripting; Management Services». Technet.microsoft.com. 2005-01-21. Retrieved 2012-11-30.
- ^ Henry-Stocker, Sandra (2007-07-18). «Use your Unix scripting skills to write a batch file». itworld.com. IT World. Retrieved 2018-06-13.
- ^ «Difference between bat and cmd | WWoIT — Wayne’s World of IT». waynes-world-it.blogspot.fr. 2012-11-15. Retrieved 2012-11-30.
- ^ «btm file extension :: all about the .btm file type». Cryer.co.uk. Retrieved 2012-11-30.
- ^ Caldera DR-DOS 7.02 User Guide, Caldera, Inc., 1998 [1993, 1997], archived from the original on 2016-11-05, retrieved 2013-08-10
- ^ Brothers, Hardin; Rawson, Tom; Conn, Rex C.; Paul, Matthias R.; Dye, Charles E.; Georgiev, Luchezar I. (2002-02-27). 4DOS 8.00 online help.
- ^ a b «.NET Core Runtime: System.Diagnostics.Process.Unix». GitHub. Retrieved 2020-02-11.
Two consecutive double quotes inside an inQuotes region should result in a literal double quote (the parser is left in the inQuotes region). This behavior is not part of the spec of code:ParseArgumentsIntoList, but is compatible with CRT and .NET Framework.
- ^ a b Deley, David. «How Command Line Parameters Are Parsed».
- ^ «Child process documentation, section Windows Command Line, NodeJS PR #29576». GitHub. Retrieved 2020-02-11.
- ^ «How to do a delay», ericphelps.com
- ^ Utilities for DOS, linking to WAIT.ZIP (archive of WAIT.COM) and other programs
- ^ a b https://support.microsoft.com/en-us/kb/156276[dead link]
- ^ Chen, Raymond. «Keep your eye on the code page». Microsoft.
- ^ http://www.explorehacking.com/2011/01/batch-files-art-of-creating-viruses.html[bare URL]
- ^ «Windows PowerShell — Unix comes to Windows». Geekswithblogs.net. Retrieved 2012-11-30.
External links[edit]
- Microsoft Windows XP Batch file reference
- How Windows batch files work
- Windows 10 batch file commands
- FreeDOS’ FreeCOM : complete feature list
- Windows Command Line Interface script programming links
- scripting related information (also command line)
- dbenham. «How does the Windows Command Interpreter (CMD.EXE) parse scripts?». Stack Overflow.
Filename extensions | .bat , .cmd , .btm |
---|---|
Internet media type |
|
Type of format | Scripting |
Container for | Scripts |
A batch file is a script file in DOS, OS/2 and Microsoft Windows. It consists of a series of commands to be executed by the command-line interpreter, stored in a plain text file. A batch file may contain any command the interpreter accepts interactively and use constructs that enable conditional branching and looping within the batch file, such as IF
, FOR
, and GOTO
labels. The term «batch» is from batch processing, meaning «non-interactive execution», though a batch file might not process a batch of multiple data.
Similar to Job Control Language (JCL), DCL and other systems on mainframe and minicomputer systems, batch files were added to ease the work required for certain regular tasks by allowing the user to set up a script to automate them. When a batch file is run, the shell program (usually COMMAND.COM or cmd.exe) reads the file and executes its commands, normally line-by-line.[1] Unix-like operating systems, such as Linux, have a similar, but more flexible, type of file called a shell script.[2]
The filename extension .bat is used in DOS and Windows. Windows NT and OS/2 also added .cmd. Batch files for other environments may have different extensions, e.g., .btm in 4DOS, 4OS2 and 4NT related shells.
The detailed handling of batch files has changed significantly between versions. Some of the detail in this article applies to all batch files, while other details apply only to certain versions.
Variants[edit]
DOS[edit]
In MS-DOS, a batch file can be started from the command-line interface by typing its name, followed by any required parameters and pressing the ↵ Enter key. When DOS loads, the file AUTOEXEC.BAT, when present, is automatically executed, so any commands that need to be run to set up the DOS environment may be placed in this file. Computer users would have the AUTOEXEC.BAT file set up the system date and time, initialize the DOS environment, load any resident programs or device drivers, or initialize network connections and assignments.
A .bat file name extension identifies a file containing commands that are executed by the command interpreter COMMAND.COM line by line, as if it were a list of commands entered manually, with some extra batch-file-specific commands for basic programming functionality, including a GOTO
command for changing flow of line execution.
Early Windows[edit]
Microsoft Windows was introduced in 1985 as a graphical user interface-based (GUI) overlay on text-based operating systems and was designed to run on DOS. In order to start it, the WIN
command was used, which could be added to the end of the AUTOEXEC.BAT file to allow automatic loading of Windows. In the earlier versions, one could run a .bat type file from Windows in the MS-DOS Prompt. Windows 3.1x and earlier, as well as Windows 9x invoked COMMAND.COM to run batch files.
OS/2[edit]
The IBM OS/2 operating system supported DOS-style batch files. It also included a version of REXX, a more advanced batch-file scripting language. IBM and Microsoft started developing this system, but during the construction of it broke up after a dispute; as a result of this, IBM referred to their DOS-like console shell without mention of Microsoft, naming it just DOS, although this seemingly made no difference with regard to the way batch files worked from COMMAND.COM.
OS/2’s batch file interpreter also supports an EXTPROC command. This passes the batch file to the program named on the EXTPROC file as a data file. The named program can be a script file; this is similar to the #! mechanism used by Unix-like operating systems.
Windows NT[edit]
Unlike Windows 98 and earlier, the Windows NT family of operating systems does not depend on MS-DOS. Windows NT introduced an enhanced 32-bit command interpreter (cmd.exe) that could execute scripts with either the .CMD or .BAT extension. Cmd.exe added additional commands, and implemented existing ones in a slightly different way, so that the same batch file (with different extension) might work differently with cmd.exe and COMMAND.COM. In most cases, operation is identical if the few unsupported commands are not used. Cmd.exe’s extensions to COMMAND.COM can be disabled for compatibility.
Microsoft released a version of cmd.exe for Windows 9x and ME called WIN95CMD to allow users of older versions of Windows to use certain cmd.exe-style batch files.
As of Windows 8, cmd.exe is the normal command interpreter for batch files; the older COMMAND.COM can be run as well in 32-bit versions of Windows able to run 16-bit programs.[nb 1]
Filename extensions[edit]
- .bat
- The first filename extension used by Microsoft for batch files. This extension runs with DOS and all versions of Windows, under COMMAND.COM or cmd.exe, despite the different ways the two command interpreters execute batch files.
- .cmd
- Used for batch files in Windows NT family and sent to cmd.exe for interpretation. COMMAND.COM does not recognize this file name extension, so cmd.exe scripts are not executed in the wrong Windows environment by mistake. In addition,
append
,dpath
,ftype
,set
,path
,assoc
andprompt
commands, when executed from a .bat file, alter the value of theerrorlevel
variable only upon an error, whereas from within a .cmd file, they would affect errorlevel even when returning without an error.[3] It is also used by IBM’s OS/2 for batch files. - .btm
- The extension used by 4DOS, 4OS2, 4NT and Take Command. These scripts are faster, especially with longer ones, as the script is loaded entirely ready for execution, rather than line-by-line.[4]
Batch file parameters[edit]
COMMAND.COM and cmd.exe support special variables (%0
, %1
through %9
) in order to refer to the path and name of the batch job and the first nine calling parameters from within the batch job, see also SHIFT. Non-existent parameters are replaced by a zero-length string. They can be used similar to environment variables, but are not stored in the environment. Microsoft and IBM refer to these variables as replacement parameters or replaceable parameters, whereas Digital Research, Novell and Caldera established the term replacement variables[5] for them. JP Software calls them batch file parameters.[6]
Examples[edit]
This example batch file displays Hello World!
, prompts and waits for the user to press a key, and then terminates. (Note: It does not matter if commands are lowercase or uppercase unless working with variables)
@ECHO OFF ECHO Hello World! PAUSE
To execute the file, it must be saved with the filename extension suffix .bat (or .cmd for Windows NT-type operating systems) in plain text format, typically created by using a text editor such as Microsoft Notepad or a word processor working in plain text mode.
When executed, the following is displayed:
Hello World! Press any key to continue . . .
Explanation[edit]
The interpreter executes each line in turn, starting with the first. The @
symbol at the start of any line prevents the prompt from displaying that command as it is executed. The command ECHO OFF
turns off the prompt permanently, or until it is turned on again. The combined @ECHO OFF
is often as here the first line of a batch file, preventing any commands from displaying, itself included. Then the next line is executed and the ECHO Hello World!
command outputs Hello World!
. The next line is executed and the PAUSE
command displays Press any key to continue . . .
and pauses the script’s execution. After a key is pressed, the script terminates, as there are no more commands. In Windows, if the script is executed from an already running command prompt window, the window remains open at the prompt as in MS-DOS; otherwise, the window closes on termination.
Limitations and exceptions[edit]
Null values in variables[edit]
Variable expansions are substituted textually into the command, and thus variables which contain nothing simply disappear from the syntax, and variables which contain spaces turn into multiple tokens. This can lead to syntax errors or bugs.
For example, if %foo% is empty, this statement:
parses as the erroneous construct:
Similarly, if %foo%
contains abc def
, then a different syntax error results:
IF abc def==bar ECHO Equal
The usual way to prevent this problem is to surround variable expansions in quotes so that an empty variable expands into the valid expression IF ""=="bar"
instead of the invalid IF ==bar
. The text that is being compared to the variable must also be enclosed in quotes, because the quotes are not special delimiting syntax; these characters represent themselves.
IF "%foo%"=="bar" ECHO Equal
The delayed !VARIABLE! expansion available in Windows 2000 and later may be used to avoid these syntactical errors. In this case, null or multi-word variables do not fail syntactically because the value is expanded after the IF command is parsed:
Another difference in Windows 2000 or higher is that an empty variable (undefined) is not substituted. As described in previous examples, previous batch interpreter behaviour would have resulted in an empty string. Example:
C:>set MyVar= C:>echo %MyVar% %MyVar% C:>if "%MyVar%"=="" (echo MyVar is not defined) else (echo MyVar is %MyVar%) MyVar is %MyVar%
Batch interpreters prior to Windows 2000 would have displayed result MyVar is not defined
.
Quotation marks and spaces in passed strings[edit]
Unlike Unix/POSIX processes, which receive their command-line arguments already split up by the shell into an array of strings, a Windows process receives the entire command-line as a single string, via the GetCommandLine API function. As a result, each Windows application can implement its own parser to split the entire command line into arguments. Many applications and command-line tools have evolved their own syntax for doing that, and so there is no single convention for quoting or escaping metacharacters on Windows command lines.
- For some commands, spaces are treated as delimiters that separate arguments, unless those spaces are enclosed by quotation marks. Various conventions exist of how quotation marks can be passed on to the application:
- A widely used convention is implemented by the command-line parser built into the Microsoft Visual C++ runtime library in the CommandLineToArgvW function. It uses the convention that 2n backslashes followed by a quotation mark («) produce n backslashes followed by a begin/end quote, whereas (2n)+1 backslashes followed by a quotation mark again produce n backslashes followed by a quotation mark literal. The same convention is part of the .NET Framework specification.[7]
- An undocumented aspect is that «» occurring in the middle of a quoted string produces a single quotation mark.[7] (A CRT change in 2008 [msvcr90] modified this undocumented handling of quotes.[8]) This is helpful for inserting a quotation mark in an argument without re-enabling interpretation of cmd metacharacters like |, & and >. (cmd does not recognize the usual « as escaping the quote. It re-enables these special meanings on seeing the quote, thinking the quotation has ended.)
- Another convention is that a single quotation mark («) is not included as part of the string. However, an escaped quotation mark («»») can be part of the string.[citation needed]
- Yet another common convention comes from the use of Cygwin-derived ported programs. It does not differentiate between backslashes occurring before or not before quotes. See glob (programming) § Windows and DOS for information on these alternative command-line parsers.[9]
- Some important Windows commands, like
cmd.exe
andwscript.exe
, use their own rules.[8]
- A widely used convention is implemented by the command-line parser built into the Microsoft Visual C++ runtime library in the CommandLineToArgvW function. It uses the convention that 2n backslashes followed by a quotation mark («) produce n backslashes followed by a begin/end quote, whereas (2n)+1 backslashes followed by a quotation mark again produce n backslashes followed by a quotation mark literal. The same convention is part of the .NET Framework specification.[7]
- For other commands, spaces are not treated as delimiters and therefore do not need quotation marks. If quotes are included they become part of the string. This applies to some built-in commands like echo.
Where a string contains quotation marks, and is to be inserted into another line of text that must also be enclosed in quotation marks, particular attention to the quoting mechanism is required:
C:>set foo="this string is enclosed in quotation marks" C:>echo "test 1 %foo%" "test 1 "this string is enclosed in quotation marks"" C:>eventcreate /T Warning /ID 1 /L System /SO "Source" /D "Example: %foo%" ERROR: Invalid Argument/Option - 'string'. Type "EVENTCREATE /?" for usage.
On Windows 2000 and later, the solution is to replace each occurrence of a quote character within a value by a series of three quote characters:
C:>set foo="this string is enclosed in quotes" C:>set foo=%foo:"="""% C:>echo "test 1 %foo%" "test 1 """this string is enclosed in quotes"""" C:>eventcreate /T Warning /ID 1 /L System /SO "Source" /D "Example: %foo%" SUCCESS: A 'Warning' type event is created in the 'Source' log/source.
Escaped characters in strings[edit]
Some characters, such as pipe (|
) characters, have special meaning to the command line. They cannot be printed as text using the ECHO command unless escaped using the caret ^ symbol:
C:>Echo foo | bar 'bar' is not recognized as an internal or external command, operable program or batch file. C:>Echo foo ^| bar foo | bar
However, escaping does not work as expected when inserting the escaped character into an environment variable. The variable ends up containing a live pipe command when merely echoed. It is necessary to escape both the caret itself and the escaped character for the character display as text in the variable:
C:>set foo=bar | baz 'baz' is not recognized as an internal or external command, operable program or batch file. C:>set foo=bar ^| bar C:>echo %foo% 'baz' is not recognized as an internal or external command, operable program or batch file. C:>set foo=bar ^^^| baz C:>echo %foo% bar | baz
The delayed expansion available with or with in Windows 2000 and later may be used to show special characters stored in environment variables because the variable value is expanded after the command was parsed:
C:>cmd /V:ON Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:>set foo=bar ^| baz C:>echo !foo! bar | baz
Sleep or scripted delay[edit]
Until the TIMEOUT command was introduced with Windows Vista, there was no easy way to implement a timed pause, as the PAUSE command halts script activity indefinitely until any key is pressed.
Many workarounds were possible,[10] but generally only worked in some environments: The CHOICE
command was not available in older DOS versions, PING
was only available if TCP/IP was installed, and so on. No solution was available from Microsoft, but a number of small utility programs, could be installed from other sources. A commercial example would be the 1988 Norton Utilities Batch Enhancer (BE) command, where BE DELAY 18
would wait for 1 second, or the free 94-byte WAIT.COM[11] where WAIT 5
would wait for 5 seconds, then return control to the script. Most such programs are 16-bit .COM files, so are incompatible with 64-bit Windows.
Text output with stripped CR/LF[edit]
Normally, all printed text automatically has the control characters for carriage return (CR) and line feed (LF) appended to the end of each line.
- batchtest.bat
-
C:>batchtest.bat foo bar
-
It does not matter if the two echo commands share the same command line; the CR/LF codes are inserted to break the output onto separate lines:
C:>@echo Message 1&@echo Message 2 Message 1 Message 2
A trick discovered with Windows 2000 and later is to use the special prompt for input to output text without CR/LF trailing the text. In this example, the CR/LF does not follow Message 1, but does follow Line 2 and Line 3:
- batchtest2.bat
-
@echo off set /p ="Message 1"<nul echo Message 2 echo Message 3
-
C:>batchtest2.bat Message 1Message 2 Message 3
-
This can be used to output data to a text file without CR/LF appended to the end:
C:>set /p ="Message 1"<nul >data.txt C:>set /p ="Message 2"<nul >>data.txt C:>set /p ="Message 3"<nul >>data.txt C:>type data.txt Message 1Message 2Message 3
However, there is no way to inject this stripped CR/LF prompt output directly into an environment variable.
Setting a Uniform Naming Convention (UNC) working directory from a shortcut[edit]
It is not possible to have a command prompt that uses a UNC path as the current working directory; e.g. \serversharedirectory
The command prompt requires the use of drive letters to assign a working directory, which makes running complex batch files stored on a server UNC share more difficult. While a batch file can be run from a UNC file path, the working directory default is C:WindowsSystem32
.
In Windows 2000 and later, a workaround is to use the PUSHD
and POPD
command with command extensions.[nb 2]
If not enabled by default, command extensions can be temporarily enabled using the /E:ON
switch for the command interpreter.
So to run a batch file on a UNC share, assign a temporary drive letter to the UNC share, and use the UNC share as the working directory of the batch file, a Windows shortcut can be constructed that looks like this:
- Target:
The working directory attribute of this shortcut is ignored.
This also solves a problem related to User Account Control (UAC) on Windows Vista and newer. When an administrator is logged on and UAC is enabled, and they try to run a batch file as administrator from a network drive letter, using the right-click file context menu, the operation will unexpectedly fail. This is because the elevated UAC privileged account context does not have network drive letter assignments, and it is not possible to assign drive letters for the elevated context via the Explorer shell or logon scripts. However, by creating a shortcut to the batch file using the above PUSHD
/ POPD
construct, and using the shortcut to run the batch file as administrator, the temporary drive letter will be created and removed in the elevated account context, and the batch file will function correctly.
The following syntax does correctly expand to the path of the current batch script.
%~dp0
UNC default paths are turned off by default as they used to crash older programs.[12]
The Dword registry value DisableUNCCheck
at HKEY_CURRENT_USERSoftwareMicrosoftCommand Processor
[12] allows the default directory to be UNC. CD
command will refuse to change but placing a UNC path in Default Directory in a shortcut to Cmd or by using the Start command. (C$
share is for administrators).
Character set[edit]
Batch files use an OEM character set, as defined by the computer, e.g. Code page 437. The non-ASCII parts of these are incompatible with the Unicode or Windows character sets otherwise used in Windows so care needs to be taken.[13] Non-English file names work only if entered through a DOS character set compatible editor. File names with characters outside this set do not work in batch files.
To get a command prompt with Unicode instead of Code page 437 or similar, one can use the cmd /U
command. In such a command prompt, a batch file with Unicode filenames will work. Also one can use cmd /U
to directly execute commands with Unicode as character set. For example, cmd /U /C dir > files.txt
creates a file containing a directory listing with correct Windows characters, in the UTF-16LE encoding.
Batch viruses and malware[edit]
As with any other programming language, batch files can be used maliciously. Simple trojans and fork bombs are easily created, and batch files can do a form of DNS poisoning by modifying the hosts file. Batch viruses are possible, and can also spread themselves via USB flash drives by using Windows’ Autorun capability.[14]
The following command in a batch file will delete all the data in the current directory (folder) — without first asking for confirmation:
These three commands are a simple fork bomb that will continually replicate itself to deplete available system resources, slowing down or crashing the system:
:TOP start "" %0 goto TOP
Other Windows scripting languages[edit]
The cmd.exe command processor that interprets .cmd files is supported in all 32- and 64-bit versions of Windows up to at least Windows 10. COMMAND.EXE, which interprets .BAT files, was supported in all 16- and 32-bit versions up to at least Windows 10.[nb 3]
There are other, later and more powerful, scripting languages available for Windows. However, these require the scripting language interpreter to be installed before they can be used:
- Extended Batch Language (EBL) (.bat) — developed by Frank Canova as an ‘own-time’ project while working at IBM in 1982. It was subsequently sold by Seaware Corp as an interpreter and compiler primarily for DOS, but later for Windows.
- KiXtart (.kix) — developed by a Microsoft employee in 1991, specifically to meet the need for commands useful in a network logon script while retaining the simple ‘feel’ of a .cmd file.
- Windows Script Host (.vbs , .js and .wsf) — released by Microsoft in 1998, and consisting of cscript.exe and wscript.exe, runs scripts written in VBScript or JScript. It can run them in windowed mode (with the wscript.exe host) or in console-based mode (with the cscript.exe host). They have been a part of Windows since Windows 98.
- PowerShell (.ps1) — released in 2006 by Microsoft and can operate with Windows XP (SP2/SP3) and later versions. PowerShell can operate both interactively (from a command-line interface) and also via saved scripts, and has a strong resemblance to Unix shells.[15]
- Unix-style shell scripting languages can be used if a Unix compatibility tool, such as Cygwin, is installed.
- Cross-platform scripting tools including Perl, Python, Ruby, Rexx, Node.js and PHP are available for Windows.
Script files run if the filename without extension is entered. There are rules of precedence governing interpretation of, say, DoThis
if DoThis.com
, DoThis.exe
, DoThis.bat
, DoThis.cmd
, etc. exist; by default DoThis.com
has highest priority. This default order may be modified in newer operating systems by the user-settable PATHEXT environment variable.
See also[edit]
- List of DOS commands
Notes[edit]
- ^ To verify that COMMAND.COM remains available (in the WINDOWSSYSTEM32 directory), type
COMMAND.COM
at the 32-bit Windows 7 command prompt. - ^ «If Command Extensions are enabled the PUSHD command accepts network paths in addition to the normal drive letter and path. If a network path is specified, PUSHD creates a temporary drive letter that points to that specified network resource and then change the current drive and directory, using the newly defined drive letter. Temporary drive letters are allocated from Z: on down, using the first unused drive letter found.» —The help for PUSHD in Windows 7
- ^ Availability of CMD.EXE and COMMAND.COM can be confirmed by invoking them in any version of Windows (COMMAND.COM not in 64-bit versions; probably only available in Windows 8 32-bit versions if installed with option to support 16-bit programs).
References[edit]
- ^ «Using batch files: Scripting; Management Services». Technet.microsoft.com. 2005-01-21. Retrieved 2012-11-30.
- ^ Henry-Stocker, Sandra (2007-07-18). «Use your Unix scripting skills to write a batch file». itworld.com. IT World. Retrieved 2018-06-13.
- ^ «Difference between bat and cmd | WWoIT — Wayne’s World of IT». waynes-world-it.blogspot.fr. 2012-11-15. Retrieved 2012-11-30.
- ^ «btm file extension :: all about the .btm file type». Cryer.co.uk. Retrieved 2012-11-30.
- ^ Caldera DR-DOS 7.02 User Guide, Caldera, Inc., 1998 [1993, 1997], archived from the original on 2016-11-05, retrieved 2013-08-10
- ^ Brothers, Hardin; Rawson, Tom; Conn, Rex C.; Paul, Matthias R.; Dye, Charles E.; Georgiev, Luchezar I. (2002-02-27). 4DOS 8.00 online help.
- ^ a b «.NET Core Runtime: System.Diagnostics.Process.Unix». GitHub. Retrieved 2020-02-11.
Two consecutive double quotes inside an inQuotes region should result in a literal double quote (the parser is left in the inQuotes region). This behavior is not part of the spec of code:ParseArgumentsIntoList, but is compatible with CRT and .NET Framework.
- ^ a b Deley, David. «How Command Line Parameters Are Parsed».
- ^ «Child process documentation, section Windows Command Line, NodeJS PR #29576». GitHub. Retrieved 2020-02-11.
- ^ «How to do a delay», ericphelps.com
- ^ Utilities for DOS, linking to WAIT.ZIP (archive of WAIT.COM) and other programs
- ^ a b https://support.microsoft.com/en-us/kb/156276[dead link]
- ^ Chen, Raymond. «Keep your eye on the code page». Microsoft.
- ^ http://www.explorehacking.com/2011/01/batch-files-art-of-creating-viruses.html[bare URL]
- ^ «Windows PowerShell — Unix comes to Windows». Geekswithblogs.net. Retrieved 2012-11-30.
External links[edit]
- Microsoft Windows XP Batch file reference
- How Windows batch files work
- Windows 10 batch file commands
- FreeDOS’ FreeCOM : complete feature list
- Windows Command Line Interface script programming links
- scripting related information (also command line)
- dbenham. «How does the Windows Command Interpreter (CMD.EXE) parse scripts?». Stack Overflow.
Правильные ответы выделены зелёным цветом.
Все ответы: В курсе рассматриваются стандартные технологии (WSH, WMI, ADSI) и программные продукты (командный интерпретатор Cmd.exe, серверы сценариев CScript и WScript, оболочка Windows PowerShell) фирмы Microsoft, разработанные для автоматизации работы в операционной системе Windows.
В каких версиях операционной системы Windows можно пользоваться командными файлами?
(1) во всех версиях Windows
(2) в Windows NT и выше
(3) в Windows XP и выше
Какими основными компонентами можно представить общую структуру WMI?
(1) управляемые ресурсы, ядро WMI, управляющие программы
(2) провайдеры WMI, менеджер объектов CIM, репозиторий CIM
(3) управляемые ресурсы, библиотека поддержки сценариев WMI, управляющие программы
К какому типу относится класс Win32_Process
?
(1) динамический класс
(2) статический класс
(3) абстрактный класс
Каким файлом реализована библиотека поддержки сценариев WMI?
(1) winmgmtr.dll
(2) wbemdisp.dll
(3) wmiprov.dll
Какой класс WMI позволяет перезагрузить удаленный компьютер?
(1) Win32_OperatingSystem
(2) Win32_SystemSetting
(3) Win32_ComputerSystem
Какая команда WMIC позволяет выйти из этой оболочки?
(1) QUIT
(2) EXIT
(3) END
Какие форматы вывода поддерживает WMIC по умолчанию?
(1) текстовые файлы с разделителями (CSV-файлы)
(2) таблицы Microsoft Excel
(3) XML-файлы
Какое из имен не соответствует шаблону наименования командлетов?
(1) Get-Service
(2) Get_Service
(3) GetService
Требуется узнать, какие свойства имеют объекты, возвращаемые командлетом с псевдонимом dir
. Какая команда позволяет сделать это?
(1) Get-Member | dir
(2) dir | gm -MemberType Property
(3) dir | Get-Member -MemberType Property
Требуется получить текстовый файл C:cimv2.txt со списком имен всех классов WMI, зарегистрированных на локальном компьютере в пространстве имен RootCIMV2. Список должен быть упорядочен по алфавиту. Какие команды решают эту задачу?
(1) Get-WmiObject -list | Sort-Object name | Format-Table name > c:cimv2.txt
(2) gwmi -list | sort name | ft name > c:cimv2.txt
(3) gwmi | sort name | ft name | out-file c:cimv2.txt
Какое расширение должны иметь сценарии PowerShell?
В каком каталоге в Windows XP хранится файл cmd.exe?
(1) %SystemRoot%
(2) %SystemRoot%System32
(3) %SystemRoot%System
Какое расширение могут иметь командные файлы?
Какое имя имеет сервер сценариев WSH для консольного режима?
(1) cscript.exe
(2) wscript.exe
(3) cmd.exe
Какой из объектов WSH позволяет получить доступ к стандартным потокам ввода/вывода (StdIn/StdOut
)?
(1) WshEnvironment
(2) WshShell
(3) WScript
Какой программный идентификатор (ProgID
) имеет объект FileSystemObject
?
(1) Scripting.FSO
(2) WScript.FileSystemObject
(3) Scripting.FileSystemObject
С помощью каких методов можно запустить новый процесс в сценарии WSH?
(1) метод Run
объекта WshShell
(2) метод Exec
объекта WshShell
(3) метод AppActivate
объекта WshShell
Какая из приведенных ниже строк связывания может использоваться в службе каталогов Windows Active Directory?
(1) LDAP://ldapsrv1/CN=Ivanov,DC=DEV,DC=MSFT,DC=COM
(2) WinNT://Domain1/Server1,Computer1
(3) NDS://TreeNW/O=SB/CN=Ivanov
Какие из указанных ниже элементов входят в схему WS XML?
(1) <runtime>
(2) <reference>
(3) <subject>
Какие средства позволяют напрямую обращаться к объектам WMI?
(1) оболочка WMIC
(2) сценарии WSH
(3) интерпретатор Cmd.exe
Какие из перечисленных ниже функций должен выполнять менеджер объектов CIMOM?
(1) хранение экземпляров классов информационной модели CIM
(2) переадресация запросов от управляющих приложений к определенным провайдерам WMI
(3) регистрация информации о провайдерах WMI
Можно ли изменять значения свойств объектов WMI?
(1) нет, все свойства объектов WMI доступны только для чтения
(2) да, все свойства объектов WMI можно изменять
(3) можно изменять лишь некоторые свойства объектов WMI (зависит от версии операционной системы)
Какой объект библиотеки поддержки сценариев WMI позволяет подключиться к пространству имен WMI на локальной или удаленной машине?
(1) SWbemLocator
(2) SWbemServices
(3) SWbemObject
Какие дополнительные привилегии нужно указывать при подключении к подсистеме WMI для перезагрузки локального компьютера?
(1) RemoteShutdown
(2) дополнительных привилегий указывать не нужно
(3) Shutdown
Какой глобальный параметр позволяет обращаться из оболочки WMIC к пространству имен WMI на удаленном компьютере?
(1) /NODE
(2) /HOST
(3) /COMP
С помощью какой команды можно сформировать файл C:s.htm с одной HTML-таблицей, содержащей краткие сведения о всех службах, зарегистрированных на локальном компьютере?
(1) /OUTPUT:C:s.htm SERVICE LIST BRIEF /FORMAT:HTABLE
(2) /OUTPUT:C:s.htm SERVICE LIST BRIEF /FORMAT:HFORM
(3) /OUTPUT:C:s.htm SERVICE LIST /FORMAT:HFORM
Какая команда позволит увидеть, какому командлету соответствует псевдоним dir
?
(1) Get-Command dir
(2) Get-Alias dir
(3) Get-Definition dir
Какая из команд выведет список файлов из корневого каталога диска C:, размер которых больше 1 килобайта?
(1) dir c: | where {$_.length -gt 1024}
(2) dir c: | where {$_.length>1024}
(3) dir c: | where-object {$_.length -gt 1024}
Требуется получить список программ, запускаемых автоматически при загрузке операционной системы. Какая команда решают эту задачу?
(1) gwmi win32_startupcommand | fl
(2) gwmi win32_product | fl
(3) GetWmiObject Win32Startup | Format-List *
Пусть $a=3
. Какая из команд при выполнении выдаст сообщение "Значение переменной a равно 3"
?
(1) if ($a -eq 3){write-host 'Значение переменной a равно $a'}
(2) if ($a -eq 3){write-host "Значение переменной a равно $a"}
(3) if ($a==3){write-host "Значение переменной a равно $a"}
Какой командой интерпретатора Cmd.exe
можно создать файл Dir_Help.txt
с описанием команды DIR
?
(1) dir /? | Dir_Help.txt
(2) dir > Dir_Help.txt
(3) dir /? > Dir_Help.txt
(4) dir /? & Dir_Help.txt
Сколько параметров командной строки можно обработать в пакетном файле?
(1) девять
(2) десять
(3) произвольное количество
Какой режим выполнения будет установлен по умолчанию для сценариев WSH после выполнения команды cscript.exe //H:CScript
?
(1) консольный
(2) графический
(3) тот режим, который был до выполнения команды
Какой из объектов WSH позволяет получить доступ к переменным среды?
(1) WshEnvironment
(2) WshNetwork
(3) WScript
Пусть D
– экземпляр объекта Drive
, соответствующий логическому диску D:. В сценарии выполняется следующая строка (язык VBScript): n=D.TotalSize/(1024*1024)
. Чему после этого равно значение переменной n
?
(1) общий объем диска D: в килобайтах
(2) общий объем диска D: в мегабайтах
(3) общий объем диска D: в гигабайтах
С помощью какого метода можно завершить работу запущенного дочернего процесса?
(1) метод с данной функциональностью в WSH отсутствует
(2) метод Terminate
объекта WshScriptExec
(3) метод Kill
объекта WshScriptExec
Какая из приведенных ниже строк ADsPath
должна использоваться для связывания с локальным пользователем Ivanov
на рабочей станции Comp1
с операционной системой Windows XP?
(1) WinNT://Comp1/Ivanov
(2) WinNT://Comp1/Ivanov, user
(3) WinNT://Comp1, Ivanov, user
В каких случаях в сценарии необходимо использовать элемент <package>
?
(1) сценарий содержит код на нескольких языках
(2) сценарий содержит более одного задания
(3) элемент <package>
необходимо указывать во всех сценариях
Какие языки можно использовать для написания сценариев WSH?
(1) Microsoft VBScript
(2) Microsoft JScript
(3) Microsoft C#
Какой исполняемый файл обеспечивает функциональность менеджера CIMOM?
(1) winmgmt.exe
(2) wbemtest.exe
(3) wmi.exe
Допустим, что класс WMI имеет квалификатор SupportsCreate
со значением True
. Что это означает?
(1) класс поддерживает операцию создания экземпляров
(2) класс является динамическим
(3) класс допускает добавление новых свойств
Каким образом из сценария WSH можно подключиться к определенному пространству имен WMI?
(1) с помощью объекта SWbemLocator
(2) с помощью объекта SWbemSevices
(3) с помощью моникера WMI
Какой класс WMI позволяет узнать дату установки операционной системы?
(1) Win32_OperatingSystem
(2) Win32_SystemSetting
(3) Win32_ComputerSystem
Какой глобальный параметр позволяет перенаправить вывод всех команд WMIC во внешний текстовый файл c:wmic_out.txt (без дублирования выводимой информации на экране)?
(1) /APPEND:c:wmic_out.txt
(2) /OUTPUT:c:wmic_out.txt
(3) /RECORD:c:wmic_out.txt
Какая команда позволяет удаленно выключить рабочую станцию \Comp1
?
(1) /NODE:COMP1 OS WHERE(CSNAME="COMP1") CALL Win32ShutDown 1
(2) /NODE:COMP1 OS CALL Win32ShutDown 1
(3) /NODE:COMP1 OS WHERE(CSNAME="COMP1") CALL Win32ShutDown 0
Каким образом можно вывести краткую справку по командлету Get-Process
?
(1) Get-Process /?
(2) Get-Process -?
(3) Get-Process ?
Требуется получить упорядоченный по размеру список файлов из корневого каталога диска C:, размер которых больше 1 килобайта. Вверху списка должен быть самый маленький файл. Какие команды решают эту задачу?
(1) dir c: | where {$_.length -gt 1024} | sort-object length
(2) dir c: | where {$_.length -gt 1024} | sort length
(3) dir c: | where {$_.length -gt 1024} | object length
Требуется получить список всех служб, зарегистрированных на локальном компьютере, запуск которых отключен. Для каждой такой службы должно быть указано ее имя, отображаемое имя и текущее состояние. Какие команды решают эту задачу?
(1) Get-WmiObject -Query 'select * from Win32_Service where StartMode="Disabled"' | Format-Table Name, DisplayName, State
(2) gwmi -query 'select * from win32_service where StartMode="Disabled"' | ft name, displayname, state
(3) gwmi win32_service -filter 'StartMode="Disabled"' | ft name, displayname, state
Пусть $a=3
. Какая из команд при выполнении выдаст ровно одно сообщение "Значение переменной a равно 4"
?
(1) while($a -le 3){$a++; Write-Host "Значение переменной a равно $a"}
(2) while($a -eq 3){$a++; Write-Host "Значение переменной a равно $a"}
(3) while($a -lt 5){$a++; Write-Host "Значение переменной a равно $a"}
Пусть текущим каталогом является C:folder1folder2folder3. Каким командами можно переместиться в корневой каталог диска C?
(1) cd
(2) cd c:
(3) cd c:
(4) cd ......
Пусть значением переменной %SystemRoot%
является строка "C:Windows"
(без кавычек). Какое значение будет иметь переменная s после выполнения в пакетном файле команды set s=%SystemRoot:~0,3%
?
Какой язык поддерживает WSH по умолчанию (без установки дополнительных модулей)?
(1) VBScript
(2) Visual Basic
(3) Python
Какой из объектов WSH позволяет создавать ярлыки для программ и документов?
(1) WshEnvironment
(2) WshShell
(3) WScript
Пусть FSO
– экземпляр объекта FileSystemObject
. Каким образом можно создать временный текстовый файл со случайным именем (язык VBScript)?
(1) F=FSO.CreateTextFile(FSO.GetTempName, true)
(2) Set F=FSO.CreateTextFile(FSO.GetTempName, true)
(3) Set F=FSO.CreateTextFile(FSO.GetRandomName, true)
С помощью какого метода можно имитировать нажатия клавиш в активном окне приложения Windows?
(1) метод с данной функциональностью в WSH отсутствует
(2) метод SendKeys
объекта WshShell
(3) метод PutKeys
объекта WshShell
Каким образом из сценария на языке JScript провести связывание с корневым объектом класса Namespace для провайдера службы каталогов Windows NT?
(1) var objNamespace = GetObject("WinNT:");
(2) var objNamespace = new ActiveXObject("WinNT:");
(3) var objNamespace = GetObject("LDAP:");
Какие из приведенных ниже элементов могут содержаться внутри элемента <runtime>
в схеме WS XML?
(1) <named>
(2) <unnamed>
(3) <arguments>
Какое средство автоматизации предлагает собственную объектную модель?
(1) Cmd.exe
(2) Windows PowerShell
(3) WSH
Какой символ используется для задания имени локального компьютера в пути к объектам WMI?
(1) *
(2) .
(точка)
(3) $
Как можно узнать, доступен ли для выполнения определенный метод объекта WMI?
(1) все методы, объявленные в объектной модели WMI, доступны для выполнения
(2) нужно проверить у данного метода наличие и значение квалификатора Implemented
(3) нужно проверить у данного метода наличие и значение квалификатора Realised
Какой программный идентификатор (ProgID
) имеет объект SWbemLocator
?
(1) WbemScripting.SWbemLocator
(2) WMIScripting.SWbemLocator
(3) WMIScript.SWbemLocator
Какой запрос на языке WQL позволит получить набор всех служб с ручным режимом запуска?
(1) SELECT * FROM Win32_Service WHERE StartMode ='Manual'
(2) SELECT * FROM Win32_Service WHERE Mode ='Manual'
(3) SELECT * FROM Service WHERE StartMode ='Manual'
Какая команда WMIC позволяет работать с экземплярами классов WMI напрямую, без использования псевдонимов?
(1) CLASS
(2) WMI_PATH
(3) PATH
Пусть требуется узнать букву последнего логического диска на компьютере \Comp1
. Какие команды позволят это сделать?
(1) /NODE:COMP1 BOOTCONFIG GET LastDrive
(2) /NODE:COMP1 BOOTCONFIG LIST LastDrive
(3) /NODE:COMP1 BOOTCONFIG SHOW LastDrive
Какая из команд не будет автоматически дополнена до подходящего командлета (Start-Service
) после нажатия клавиши <Tab>?
(1) Start-
(2) Start
(3) Start-S
Требуется получить список файлов (без каталогов) корневого каталога диска C: и вывести в виде таблицы имена и размеры данных файлов, а также дату последнего обращения к ним. Какие команды решают эту задачу?
(1) dir c: | where {$_.mode -notmatch "d"} | ft name, length, lastaccesstime
(2) dir c: | where {$_.mode -notmatch "d"} | fl name, length, lastaccesstime
(3) dir c: | where {$_.mode -notmatch "d"} | fc name, length, lastaccesstime
Какая команда позволит увидеть свойства и методы, имеющиеся у главного объекта сервера автоматизации Internet Explorer?
(1) New-Object -ComObject InternetExplorer.Application | Get-Member
(2) New-Object InternetExplorer.Application | Get-Member
(3) Create-Object -ComObject InternetExplorer.Application | Get-Member
Требуется найти и сохранить в переменной $m
суммарный размер файлов с расширением mp3, хранящихся в каталоге C:Music и всех его подкаталогах. Какие команды решают эту задачу?
(1) $m = 0; foreach ($f in dir -recurse c:music* -include *.mp3) { $m += $f.length }
(2) $m = 0; foreach ($f in dir -recurse c:music* -exclude *.mp3) { $m += $f.length }
(3) $m = 0; ForEach-Object ($f in dir -recurse c:music* -include *.mp3) { $m += $f.length }
Что выведется на экран в результате выполнения команды: echo 1111 > c:klop.txt & type c:klop.txt > nul && echo 2222
?
(1) ничего не выведется
(2) строка 2222
(3) строки 1111 и 2222
Какой командой можно приостановить работу пакетного файла?
(1) stop
(2) pause
(3) wait
Какое расширение имеет файл параметров для сценариев WSH?
Каким образом можно из сценария создать экземпляр внешнего объекта-сервера автоматизации?
(1) с помощью метода WScript.CreateObject
(2) с помощью функции CreateObject
языкаVBScript
(3) с помощью оператора new
языка JScript
Пусть FSO
– экземпляр объекта FileSystemObject
. Каким образом можно удалить файл C:1.txt (язык VBScript)?
(1) FSO. EraseFile "C:1.txt"
(2) FSO.DeleteFile "C:1.txt"
(3) FSO.Delete "C:1.txt"
Каким образом в сценарии WSH можно сымитировать нажатие клавиши <Enter> в активном окне приложения Windows?
(1) этого из сценария WSH сделать нельзя
(2) с помощью вызова метода SendKeys
объекта WshShell с параметром «~»
(3) с помощью вызова метода SendKeys
объекта WshShell с параметром «Enter»
Какой метод используется для записи в базу данных учетных записей информации о новом пользователе?
(1) метод SetInfo
объекта User
(2) метод PutInfo
объекта User
(3) метод Apply
объекта User
Можно ли в сценарии с разметкой XML использовать константы, определенные во внешних COM-объектах, обращаясь к ним по имени?
(1) нельзя, именованные константы необходимо определять в сценарии явно
(2) можно, предварительно установив связь с библиотекой типов нужных объектов с помощью элемента <reference>
(3) можно, предварительно подключив нужный объект с помощью элемента <object>
Можно ли в Windows использовать стандартные Unix-утилиты?
(1) да, после установки пакета Services for Unix
(2) да, Unix-утилиты поддерживаются по умолчанию
(3) нельзя
Каким образом задается путь к объекту WMI, соответствующему процессу calc.exe, запущенному на компьютере \comp1
?
(1) \comp1CIMV2:Win32_Process.Name="calc.exe"
(2) \comp1Applications:Win32_Process.Name="calc.exe"
(3) \comp1CIMV2:Win32_ProcessName"calc.exe"
Какая стандартная утилита Windows позволяет работать с объектной моделью WMI?
(1) regedit.exe
(2) wmimgmt.msc
(3) wbemtest.exe
Каким образом из сценария на языке VBScript можно подключиться к пространству имен CIMV2 на локальном компьютере?
(1) Set objService = GetObject("WinMgmts:\.RootCIMV2")
(2) Set objService = GetObject("WinMgmts:RootCIMV2")
(3) Set objService = GetObject("WINMGMTS:\.RootCIMV2")
Какой запрос на языке WQL позволит получить набор всех процессов, начинающихся на букву «F»?
(1) SELECT * FROM Win32_Process WHERE Name LIKE 'F*'
(2) SELECT * FROM Win32_Process WHERE Name LIKE 'F%'
(3) SELECT * FROM Win32_Process WHERE Name LIKE 'F_'
Какая команда WMIC используется для выполнения методов классов и объектов WMI?
Допустим, что на локальном компьютере служба сервера (Lanmanserver) отключена. С помощью какой команды WMIC можно изменить режим запуска данной службы на автоматический?
(1) SERVICE WHERE (Name="Lanmanserver") SET StartMode="Auto"
(2) PATH Win32_Service WHERE (Name="Lanmanserver") SET StartMode="Auto"
(3) этого сделать нельзя, свойство StartMode
псевдонима SERVICE
доступны только для чтения
Требуется вывести в текстовый файл C:RunningServices.txt информацию о всех службах, работающих на компьютере (имя, отображаемое имя и состояние). Какие команды решают эту задачу?
(1) Get-Service | where {$_.Status -like "Run*"} | ft name, displayname, status > C:RunningServices.txt
(2) Get-Service | where {$_.Status -like "Run*"} | ft name, displayname, status | Out-File C:RunningServices.txt
(3) Get-Service | where {$_.Status -like "Run*"} | ft name, displayname, status | Write-File C:RunningServices.txt
Какая команда позволит увидеть свойства и методы, имеющиеся у статического класса System.Environment
?
(1) System.Environment | Get-Member -Static
(2) [System.Environment] | Get-Member -Static
(3) [System.Environment] | Get-Member
Какая политика выполнения устанавливается в PowerShell по умолчанию?
(1) Restricted
(2) AllSigned
(3) RemoteSigned
Какими командами можно изменить расширения на js для файлов, находящихся в текущем каталоге, имеющих расширение vbs и имя которых состоит только из одного или двух символов?
(1) ren ??.vbs ??.js
(2) ren ??.vbs *.js
(3) ren *.vbs *.js
(4) move ??.vbs *.js
С помощью какого варианта команды if
можно проверить наличие определенного файла?
(1) if exist …
(2) if defined …
(3) if errorlevel …
Какое расширение может иметь файл со сценарием на языке VBScript?
Какой программный идентификатор (ProgID
) имеет объект WshShell
?
(1) WScript.Shell
(2) WScript.WshShell
(3) WScript.WinShell
Пусть FSO
– экземпляр объекта FileSystemObject
. Каким образом можно файл C:1.txt переименовать (переместить) в файл D:2.txt (язык VBScript)?
(1) FSO.MoveFile "C:1.txt"; "D:2.txt"
(2) FSO.MoveFile("C:1.txt", "D:2.txt")
(3) Необходимы два оператора:
FSO.CopyFile «C:1.txt», «D:2.txt»FSO.DeleteFile «C:1.txt»
Какой объект является корневым в объектной модели Microsoft Word?
(1) Word
(2) Application
(3) Selection
Пусть objUser
– экземпляр объекта User
, соответствующий определенному пользователю. Каким образом изменить пароль этого пользователя на «11111111» (язык JScript)?
(1) objUser.SetPassword("11111111")
(2) objUser.Password="11111111";
(3) objUser.PutPassword("11111111");
Какой элемент схемы WS XML позволяет подключить к сценарию код из внешнего файла?
(1) элемент <script>
с атрибутом src
(2) элемент <script>
с атрибутом filename
(3) к сценарию с разметкой XML нельзя подключить внешний файл с другим сценарием
Какие из средств автоматизации поддерживают работу в интерактивном режиме?
(1) WSH
(2) WMIC
(3) Windows PowerShell
Допустим, что используя стандартные средства Windows, определенный пользователь не может перезагрузить локальный компьютер (не имеет соответствующих прав). Сможет ли он перезагрузить компьютер с помощью WMI?
(1) да, если он имеет соответствующие права на уровне пространств имен WMI локальной машины
(2) нет
(3) да, только нужно перезагружать с удаленной машины и иметь соответствующие права на уровне пространств имен WMI
Какая утилита из пакета WMI Tools позволяет создать фильтр событий WMI?
(1) WMI Event Registration Tool
(2) WMI CIM Studio
(3) WMI Event Viewer
Каким образом из сценария на языке VBScript можно подключиться к пространству имен CIMV2 на локальном компьютере?
(1) Set objService = GetObject("WinMgmts:\.RootCIMV2")
(2) Set objService = GetObject("WinMgmts:RootCIMV2")
(3) Set objService = GetObject("WINMGMTS:\.RootCIMV2")
С помощью какого метода WMI можно принудительно завершить работу определенного процесса?
(1) Win32_Process.Terminate()
(2) Win32_Process.Kill()
(3) Win32_Process.Delete()
Какая команда WMIC используется для получения значений определенных свойств объектов WMI?
(1) SHOW
(2) GET
(3) SELECT
Какая команда принудительно завершит все процессы, имена которых начинаются на букву «F»?
(1) PROCESS WHERE (Name LIKE "F%") CALL Terminate
(2) PROCESS WHERE (Name LIKE "F%") CALL Kill
(3) PROCESS WHERE (Name="F%") CALL Terminate
Какая из команд выведет список файлов и подкаталогов корневого каталога диска C:?
(1) Get-ChildItem c:
(2) dir c:
(3) ls c:
С помощью какой команды можно вывести на принтер, используемый в системе по умолчанию, список запущенных процессов, упорядоченный по затраченному процессорному времени?
(1) Get-Process | Sort-Object cpu -Descending | Out-Printer
(2) Get-Process | Sort-Object cpu -Descending > Printer
(3) ls | sort cpu –Desc | Out-Printer
Какая команда позволит увидеть значение свойства CurrentDirectory
статического класса System.Environment
?
(1) [System.Environment]::CurrentDirectory
(2) [System.Environment].CurrentDirectory
(3) [System.Environment]:CurrentDirectory
С помощью какой команды можно получить информацию о названиях доступных политик выполнения?
(1) Get-Help Get-ExecutionPolicy -Full
(2) Get-Help Set-ExecutionPolicy -Full
(3) Get-Help about_signing
Требуется сформировать файл doc_info.txt со списком всех файлов с расширением doc, находящихся в папке «C:Мои документы» и всех ее подпапках. Какой командой можно это сделать?
(1) dir /s /b C:Мои документы*.doc > doc_info.txt
(2) dir /b "C:Мои документы*.doc" > doc_info.txt
(3) dir /s /b "C:Мои документы*.doc" > doc_info.txt
Какой из указанных ниже операторов командного файла выведет на экран список всех папок в корне на диске D:?
(1) for /d %%f in (D:*.*) do echo %f
(2) for /d %%f in (D:*.*) do echo %%f
(3) for /r %%f in (D:*.*) do echo %%f
Какой цикл позволяет напрямую перебирать элементы коллекций в языке VBScript?
(1) For Each … Next
(2) Do … Loop
(3) While … Wend
Каким образом на языке VBScript можно создать объект-коллецию всех аргументов командной строки запущенного сценария?
(1) Set objArgs = WScript.Arguments
(2) Set objArgs = CreateObject("WScript.WshArguments")
(3) Set objArgs = CreateObject("WScript.Arguments")
Пусть в папке C:Folder1 хранится файл 1.txt. К какому результату приведет выполнение в сценарии на языке VBScript команды FSO.DeleteFolder "C:Folder1"
, если FSO
– экземпляр объекта FileSystemObject
?
(1) файл 1.txt будет удален, папка C:Folder1 останется
(2) папка C:Folder1 будет удалена вместе со всеми своими файлами
(3) возникнет ошибка, нельзя удалять непустую папку
Какой объект является корневым в объектной модели Microsoft Excel?
(1) Excel
(2) Application
(3) Workbook
Пусть в одном файле с разметкй XML задан сценарии на языках VBScript и JScript. Можно ли из VBScript-кода вызвать функцию, определенную на языке JScript?
(1) да, но только если VBScript- и JScript-код расположены внутри одного задания (элемента <job>
)
(2) нет, нельзя
(3) да, даже если VBScript- и JScript-код расположены внутри разных заданий (элементов <job>
)
Какие версии операционной системы Windows поддерживают сервер сценариев WSH?
(1) Windows 2000 и выше
(2) все 32-разрядные версии Windows
(3) Windows NT и выше
Из каких основных компонентов состоит ядро WMI?
(1) управляемые ресурсы, библиотека поддержки сценариев WMI, управляющие программы
(2) библиотека поддержки сценариев WMI, репозиторий CIM, управляющие программы
(3) провайдеры WMI, менеджер объектов CIM, репозиторий CIM
К какой группе принадлежит класс Win32_Process
?
(1) системный класс
(2) класс общей модели
(3) класс модели расширения
Какой компонент операционной системы отвечает за обращение к объектам WMI из сценариев WSH?
(1) библиотека поддержки сценариев WMI (wbemdisp.dll)
(2) провайдер подсистемы Win32 (wmiprov.dll)
(3) оболочка WMIC (wmic.exe)
Какой класс WMI позволяет выключить удаленный компьютер?
(1) Win32_OperatingSystem
(2) Win32_SystemSetting
(3) Win32_ComputerSystem
С помощью какой команды можно завершить сеанс работы в WMIC?
(1) LOGOUT
(2) EXIT
(3) QUIT
Какие форматы вывода поддерживает WMIC по умолчанию?
(1) HTML-файлы
(2) таблицы Microsoft Excel
(3) XML-файлы
Какая команда позволяет увидеть список всех доступных командлетов?
(1) Get_Command
(2) Get-Command
(3) GetCommand
Требуется узнать, какие методы имеют объекты, возвращаемые командлетом с псевдонимом dir
. Какая команда позволяет сделать это?
(1) Get-Member -MemberType Method | dir
(2) dir | gm -MemberType Method
(3) dir | Get Member -MemberType Property
Требуется получить текстовый файл C:root_class.txt со списком имен всех классов WMI, зарегистрированных на локальном компьютере в пространстве имен Root. Список должен быть упорядочен по алфавиту. Какие команды решают эту задачу?
(1) gwmi -namespace root -list | sort name | ft name > c:root_class.txt
(2) gwmi -namespace root | sort name | ft name | out_file c:root_class.txt
(3) Get-WmiObject -Namespace Root -List | Sort-Object name | Format-Table name > c:root_class.txt
Какое действие по умолчанию выполнит операционная система, если в Проводнике Windows дважды щелкнуть мышью на файле с расширением ps1?
(1) запустит сценарий PowerShell
(2) ничего не произойдет
(3) откроет сценарий PowerShell для редактирования в Блокноте Windows
Как назывался файл командного интерпретатора в Windows 98?
(1) command.com
(2) cmd.exe
(3) win.com
Можно ли в командных файлах пользоваться внутренними командами интерпретатора Cmd.exe и каким образом?
(1) да, нужно просто указать требуемую команду
(2) да, но для вызова внутренней команды нужно запускать новую копию командного интерпретатора
(3) нет, нельзя
Какое имя имеет сервер сценариев WSH для графического режима?
(1) cscript.exe
(2) wscript.exe
(3) cmd.exe
Каким образом в сценарии создается экземпляр объекта WScript?
(1) создается автоматически
(2) с помощью функции CreateObject
языка VBScript
(3) с помощью оператора new
языка JScript
Каким образом в сценарии на языке VBScript можно создать экземпляр объекта FileSystemObject
?
(1) Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
(2) Set FSO = CreateObject("Scripting.FileSystemObject")
(3) Set FSO = WScript.CreateObject("WScript.FileSystemObject")
С помощью какого метода можно запустить новый независимый процесс в сценарии WSH?
(1) метод Run
объекта WshShell
(2) метод Exec
объекта WshShell
(3) метод AppActivate
объекта WshShell
Какой провайдер ADSI используется для доступа к службе каталогов Windows Active Directory?
(1) LDAP
(2) WinNT
(3) NDS
Какой из указанных ниже элементов входит в схему WS XML?
(1) <script>
(2) <header>
(3) <data>
Какие средства позволяют напрямую обращаться к объектам .NET?
(1) оболочка WMIC
(2) сценарии WSH
(3) оболочка Windows PowerShell
Какие из перечисленных ниже функций должен выполнять менеджер объектов CIMOM?
(1) обработка событий WMI
(2) доступ к удаленной машине с инфраструктурой WMI
(3) обеспечение безопасности при работе с WMI
Как можно узнать, доступно ли определенное свойство объекта WMI для изменения с помощью метода Put_()
?
(1) все свойства объектов WMI доступны только для чтения, изменять их нельзя
(2) нужно проверить у данного свойства наличие и значение квалификатора Write
(3) нужно проверить у данного свойства наличие и значение квалификатора Edit
Какой объект библиотеки поддержки сценариев WMI позволяет удалять экземпляры классов в определенном пространстве имен WMI?
(1) SWbemLocator
(2) SWbemServices
(3) SWbemObject
Какие дополнительные привилегии нужно указывать при подключении к подсистеме WMI для принудительного завершения сеанса пользователя на удаленной машине?
(1) RemoteShutdown
(2) дополнительных привилегий указывать не нужно
(3) Shutdown
Допустим, что нам необходимо подключиться к подсистеме WMI на удаленной рабочей станции \Comp1
. Какой глобальный параметр WMIC следует для этого использовать?
(1) /NODE:Comp1
(2) /HOST:Comp1
(3) /COMP:Comp1
С помощью какой команды можно сформировать файл C:s.htm с несколькими HTML-таблицами, содержащими краткие сведения о всех службах, зарегистрированных на локальном компьютере (одна таблица для каждой службы)?
(1) /OUTPUT:C:s.htm SERVICE LIST BRIEF /FORMAT:HTABLE
(2) /OUTPUT:C:s.htm SERVICE LIST BRIEF /FORMAT:HFORM
(3) /OUTPUT:C:s.htm SERVICE LIST /FORMAT:HFORM
Какая команда позволит увидеть, какому командлету соответствует псевдоним cls
?
(1) Get-Command cls
(2) Get-Alias cls
(3) Get-Definition cls
Какая из команд выведет список всех подкаталогов корневого каталога диска C:?
(1) dir c: | where-object {$_.mode -match "d"}
(2) dir c: | where {$_.mode -match "d"}
(3) ls c: | where-object {$_.mode -match "d"}
Какая команда позволяет увидеть дату установки операционной системы на локальном компьютере?
(1) (gwmi win32_operatingsystem).installdate
(2) {gwmi win32_operatingsystem}.installdate
(3) $os=gwmi win32_operatingsystem; $os.installdate
Пусть $a=3
. Какая из команд при выполнении выдаст сообщение "Значение переменной a равно 3"
?
(1) if ($a -gt 2){write-host "Значение переменной a равно $a"}
(2) if ($a>2){write-host "Значение переменной a равно $a"}
(3) if ($a -gt 2){write-host 'Значение переменной a равно $a'}
Какой командой интерпретатора Cmd.exe
можно создать файл xcopy_help.txt
с описанием всех параметров команды XCOPY
?
(1) xcopy -help > xcopy_help.txt
(2) xcopy /? > xcopy_help.txt
(3) xcopy /? & xcopy_help.txt
(4) xcopy /? | xcopy_help.txt
Какой смысл в командном файле имеет параметр %0 ?
(1) имя запускаемого файла
(2) первый параметр командной строки
(3) последний параметр командной строки
С помощью какой команды можно в консольном режиме подавить вывод на экран из сценариев сообщений об ошибках?
(1) cscript.exe //I
(2) cscript.exe //B
(3) cscript.exe //S
Какой из объектов WSH позволяет получить доступ к специальным папкам Windows?
(1) WshEnvironment
(2) WshSpecialFolders
(3) WScript
Пусть D
– экземпляр объекта Drive
, соответствующий логическому диску D:. В сценарии выполняется следующая строка (язык VBScript): n=D.FreeSpace/(1024*1024)
. Чему после этого равно значение переменной n
?
(1) объем свободного места на диске D: в килобайтах
(2) объем свободного места на диске D: в мегабайтах
(3) объем свободного места на диске D: в гигабайтах
Пусть objCalc
– экземпляр объекта WshScriptExec
, соответствующий запущенному дочернему процессу calc.exe (Калькулятор Windows). С помощью какой команды на языке VBScript можно завершить работу данного экземпляра Калькулятора?
(1) objCalc.Terminate
(2) objCalc.Quit
(3) objCalc.Kill
Какая из приведенных ниже строк ADsPath
должна использоваться для связывания с локальной группой Group1 на рабочей станции Comp1 с операционной системой Windows XP?
(1) WinNT://Comp1/Group1
(2) WinNT://Comp1/Group1, group
(3) WinNT://Comp1, Group1, group
В каких случаях в сценарии может отсутствовать элемент <package>
?
(1) сценарий содержит единственное задание
(2) в сценарии описаны несколько заданий, но все они написаны на одном языке
(3) элемент <package>
необходимо указывать во всех сценариях
Можно ли написать сценарий WSH на языке Perl?
(1) нет
(2) да, Perl поддерживается по умолчанию
(3) да, но требуется установка специального модуля поддержки Perl
Файлами какого типа представлены провайдеры WMI?
(1) исполняемые файлы (exe)
(2) элементы управления (ocx)
(3) динамические библиотеки (dll)
Допустим, что класс WMI имеет квалификатор SupportsDelete
со значением True
. Что это означает?
(1) класс поддерживает операцию удаления экземпляров
(2) класс является динамическим
(3) класс допускает удаление существующих свойств
Предположим, что вы зарегистрированы в системе под учетной записью User1
и вам необходимо из сценария WSH подключиться к пространству имен WMI на удаленной машине от имени учетной записи SuperAdmin
. Какой вариант подключения следует выбрать?
(1) с помощью метода ConnectServer
объекта SWbemLocator
(2) с помощью моникера WMI
Какой класс WMI позволяет узнать дату и время последней загрузки операционной системы?
(1) Win32_OperatingSystem
(2) Win32_SystemSetting
(3) Win32_ComputerSystem
Какая команда позволяет удаленно перезагрузить рабочую станцию \Comp1
?
(1) /NODE:COMP1 OS WHERE(CSNAME="COMP1") CALL Win32ShutDown 2
(2) /NODE:COMP1 OS CALL Win32ShutDown 2
(3) /NODE:COMP1 OS WHERE(CSNAME="COMP1") CALL Win32ShutDown 0
Каким образом можно вывести детальную справочную информацию по командлету Get-Process
?
(1) help Get-Process -full
(2) Get-Help Get-Process -full
(3) Get-Help Get-Process
Требуется получить упорядоченный по размеру список файлов из корневого каталога диска C:, размер которых больше 1 килобайта. Вверху списка должен быть самый большой файл. Какие команды решают эту задачу?
(1) dir c: | where {$_.length -gt 1024} | sort-object length -desc
(2) dir c: | where {$_.length -gt 1024} | sort length
(3) dir c: | where {$_.length>1024} | sort-object length -desc
Требуется получить список всех служб, зарегистрированных на локальном компьютере, которые запускаются в автоматическом режиме. Для каждой такой службы должно быть указано ее имя, отображаемое имя и текущее состояние. Какие команды решают эту задачу?
(1) Get-WmiObject -Query 'select * from Win32_Service where StartMode="Auto"' | Format-Table Name, DisplayName, State
(2) gwmi -query 'select * from win32_service where StartMode="Auto"' | ft name, displayname, state
(3) gwmi win32_service -filter 'StartMode="Auto"' | ft name, displayname, state
Пусть $a=3
. Какая из команд при выполнении выдаст ровно одно сообщение "Значение переменной a равно 2"
?
(1) while($a -ge 3){$a--; Write-Host "Значение переменной a равно $a"}
(2) while($a -eq 3){$a--; Write-Host "Значение переменной a равно $a"}
(3) while($a -ge 2){$a--; Write-Host "Значение переменной a равно $a"}
Пусть текущим каталогом является C:folder1folder2folder3, а в каталоге folder2 имеется еще один подкаталог folder4. Какими командами можно переместиться в каталог folder4?
(1) cd c:folder1folder2folder4
(2) cd ..folder4
(3) cd .folder4
(4) cd c:folder1folder2folder4
Пусть значением переменной %SystemRoot%
является строка "C:Windows"
(без кавычек). Какое значение будет иметь переменная s после выполнения в пакетном файле команды set s=%SystemRoot:~-3%
?
Какие языки поддерживает WSH по умолчанию (без установки дополнительных модулей)?
(1) C#
(2) JScript
(3) Java
Какой из объектов WSH позволяет протоколировать действия в журнале событий Windows?
(1) WshShell
(2) WshEnvironment
(3) WScript
Пусть FSO
– экземпляр объекта FileSystemObject
. Каким образом можно создать текстовый файл с именем «Мой файл.txt» (язык VBScript)?
(1) Set F=FSO.CreateTextFile("Мой файл.txt", true)
(2) F=FSO.CreateTextFile("Мой файл.txt", true)
(3) Set F=FSO.CreateFile("Мой файл.txt", true)
С помощью какого метода можно имитировать нажатия клавиш в текущем сеансе командной строки?
(1) имитировать нажатия клавиш можно только для приложений Windows
(2) метод SendKeys
объекта WshShell
(3) метод PutKeys
объекта WshShell
Каким образом из сценария на языке VBScript провести связывание с корневым объектом класса Namespace
для провайдера службы каталогов Windows NT?
(1) Set objNamespace = GetObject("WinNT:")
(2) Set objNamespace = CreateObject("WinNT:")
(3) Set objNamespace = GetObject("LDAP:")
Какие теги могут использоваться для документирования сценария с разметкой XML?
(1) <description>
(2) <info>
(3) <example>
Можно ли написать сценарий WSH на языке Python?
(1) нет
(2) да, Python поддерживается по умолчанию
(3) да, но только после установки модуля поддержки Python
Какой уровень вложенности может иметь пространство имен CIM?
(1) один
(2) два
(3) произвольный
Допустим, что у определенного метода WMI отсутствует квалификатор Implemented
. Что это означает?
(1) данный метод пока не реализован в провайдере
(2) данный метод нельзя вызывать в экземплярах класса
(3) данный метод можно выполнять только на локальной машине
Каким образом из сценария на языке VBScript создать экземпляр объекта SWbemLocator
?
(1) Set objLocator = CreateObject("WbemScripting.SWbemLocator")
(2) Set objLocator = CreateObject("WMIScripting.SWbemLocator")
(3) Set objLocator = CreateObject("WMIScript.SWbemLocator")
Пусть в сценарии на языке VBScript присутствует строка Set objWMIService = GetObject("WinMgmts:RootCIMV2)
. Каким образом в этом сценарии получить коллекцию служб, запущенных на локальном компьютере и имеющих ручной режим запуска?
(1)
Set colServices = objWMIService.ExecQuery _
(«SELECT * FROM Win32_Service WHERE StartMode = ‘Manual'» )
(2)
colServices = objWMIService.ExecQuery _
(«SELECT * FROM Win32_Service WHERE StartMode = ‘Manual'» )
(3)
Set colServices = objWMIService.ExecQuery _
(«SELECT * FROM Service WHERE StartMode = ‘Manual'» )
Какая команда WMIC позволяет создавать новые экземпляры классов WMI напрямую, без использования псевдонимов?
(1) CLASS
(2) WMI_PATH
(3) PATH
Пусть требуется узнать дату установки операционной системы на компьютере \Comp1
. Какая команда позволят это сделать?
(1) /NODE:COMP1 OS LIST InstallDate
(2) /NODE:COMP1 OS GET InstallDate
(3) /NODE:COMP1 OS SHOW InstallDate
Какое расширение должны иметь файлы, содержащие сценарии PowerShell?
Требуется вывести в виде списка всю доступную информацию о подкаталогах корневого каталога диска C:. Какие команды решают эту задачу?
(1) dir c: | where {$_.mode -match "d"} | fl *
(2) dir c: | where {$_.mode -match "d"} | ft *
(3) dir c: | where {$_.mode -match "d"} | Format-List *
Какая команда позволит увидеть свойства, имеющиеся у главного объекта сервера автоматизации Internet Explorer?
(1) New-Object -ComObject InternetExplorer.Application | Get-Member -MemberType Property
(2) New-Object InternetExplorer.Application | Get-Member -MemberType Property
(3) Create-Object -ComObject InternetExplorer.Application | Get-Member -MemberType Property
Требуется найти и сохранить в переменной $m
суммарный размер файлов с расширением doc, хранящихся в каталоге C:Docs и всех его подкаталогах. Какие команды решают эту задачу?
(1) $m = 0; foreach ($f in dir -recurse c:docs* -include *.doc) { $m += $f.length }
(2) $m = 0; for ($f in dir -recurse c:docs* -include *.doc) { $m += $f.length }
(3) $m = 0; ForEach-Object ($f in dir -recurse c:docs* -include *.doc) { $m += $f.length }
Что выведется на экран в результате выполнения команды: echo 1111 > c:klop.txt & type c:klop.txt > nul || echo 2222
?
(1) ничего не выведется
(2) строка 2222
(3) строки 1111 и 2222
Какой символ позволяет отключить дублирование отдельной строки в командном файле?
Имеется сценарий script.vbs. Какое имя будет иметь файл с параметрами WSH для этого сценария?
(1) script.ws
(2) script.wsh
(3) script.ini
Какой из методов объекта WScript позволяет принудительно завершить работу сценария?
(1) Quit
(2) Exit
(3) End
Какой метод объекта FileSystemObject
позволяет удалять файлы?
(1) DeleteFile
(2) EraseFile
(3) Delete
Каким образом в сценарии WSH можно сымитировать нажатие клавиши <Enter> в текущем сеансе командной строки?
(1) с помощью вызова метода SendKeys
объекта WshShell с параметром "{Enter}"
(2) с помощью вызова метода SendKeys
объекта WshShell с параметром «+»
(3) с помощью вызова метода SendKeys
объекта WshShell с параметром "/Enter"/
Какой метод используется для записи в базу данных учетных записей информации о новой группе?
(1) метод PutInfo
объекта Group
(2) метод SetInfo
объекта Group
(3) метод Apply
объекта Group
Какой тег должен присутствовать в сценарии с разметкой XML, чтобы из этого сценария можно было пользоваться константами объекта FileSystemObject
без их предварительного объявления в сценарии?
(1) <reference object="Scripting.FileSystemObject"/>
(2) <object id="fso" progid="Scripting.FileSystemObject"/>
(3) из сценария с разметкой XML нельзя пользоваться константами внешних объектов
Какие средства позволяют управлять приложениями-серверами автоматизации?
(1) оболочка Windows PowerShell
(2) сценарии WSH
(3) оболочка Cmd.exe
Каким образом задается путь к объекту WMI, соответствующему службе Alerter
, работающей на компьютере \comp1
?
(1) \comp1WMI:Win32_ Service.Name="Alerter"
(2) \comp1CIMV2:Win32_Service.Name="Alerter"
(3) \comp1CIMV2:Win32_Service"Alerter"
С помощью какой стандартной утилиты можно запустить процесс на удаленной машине, используя методы WMI?
(1) regedit.exe
(2) wmimgmt.msc
(3) wbemtest.exe
Каким образом из сценария на языке VBScript можно подключиться к пространству имен CIMV2 на компьютере \Comp1
?
(1) Set objService = GetObject("WinMgmts:\Comp1RootCIMV2")
(2) Set objService = CreateObject("WinMgmts:\Comp1RootCIMV2")
(3) Set objService = GetObject("WINMGMTS:\Comp1RootCIMV2")
Пусть в сценарии на языке VBScript присутствует строка Set objWMIService = GetObject("WinMgmts:RootCIMV2)
. Каким образом в этом сценарии получить коллекцию процессов, запущенных на локальном компьютере и начинающихся на букву «F»?
(1) Set colProcesses = objService.ExecQuery("SELECT * FROM Win32_Process WHERE Name LIKE 'F*'")
(2) Set colProcesses = objService.ExecQuery("SELECT * FROM Win32_Process WHERE Name LIKE 'F%'")
(3) Set colProcesses = objService.ExecQuery("SELECT * FROM Win32_Process WHERE Name LIKE 'F_'")
С помощью какой команды можно создать новый экземпляр класса Win32_Process
(запустить новый процесс) с именем Notepad.exe?
(1) PROCESS DO Notepad.exe
(2) PROCESS RUN Notepad.exe
(3) PROCESS CALL Create Notepad.exe
Допустим, что на локальном компьютере служба сервера (Lanmanserver) стартует автоматически при загрузке операционной системы. С помощью какой команды WMIC можно отключить данную службу?
(1) SERVICE WHERE (Name="Lanmanserver") SET StartMode="Disabled"
(2) PATH Win32_Service WHERE (Name="Lanmanserver") SET StartMode="Disabled"
(3) этого сделать нельзя, свойство StartMode
псевдонима SERVICE
доступны только для чтения
Какой псевдоним используется для командлета Get-ChildItem
в целях совместимости имени с ОС Unix?
Требуется вывести в текстовый файл C:StoppedServices.txt информацию о всех остановленных службах (имя, отображаемое имя и состояние). Какие команды решают эту задачу?
(1) Get-Service | where {$_.Status -like "Stop*"} | ft name, displayname, status > C:StoppedServices.txt
(2) Get-Service | where {$_.Status -like " Stop*"} | ft name, displayname, status < Out-File C:StoppedServices.txt
(3) Get-Service | where {$_.Status -like " Stop*"} | ft name, displayname, status | Write-File C:StoppedServices.txt
Какая команда позволит увидеть свойства, имеющиеся у статического класса System.Environment
?
(1) System.Environment | Get-Member -Static -MemberType Property
(2) [System.Environment] | Get-Member –Static -MemberType Property
(3) [System.Environment] | Get-Member -MemberType Property
Какой командлет позволяет узнать текущую политику выполнения?
(1) Get-ExecutionPolicy
(2) Go-ExecutionPolicy
(3) Set-ExecutionPolicy
Пусть в текущем каталоге на диске C: хранятся файлы с расширением vbs. Какими командами можно переместить эти файлы в каталог E:folder1 (с удалением первоначальных файлов)?
(1) ren *.vbs e:folder1
(2) move *.vbs e:folder1
(3) сopy *.vbs e:folder1
(4) copy *.vbs e:folder1 & del *.vbs
С помощью какого варианта команды if
можно проверить наличие определенной переменной среды?
(1) if exists …
(2) if defined …
(3) if errorlevel …
Какое расширение может иметь файл со сценарием на языке JScript?
Какой программный идентификатор (ProgID
) имеет объект WshNetwork
?
(1) WScript.WshNetwork
(2) WScript.Network
(3) WScript.WinNetwork
С помощью какого метода объекта FileSystemObject
можно файл C:1.txt переименовать (переместить) в файл D:2.txt?
(1) MoveFile
(2) Move
(3) такого метода нет (нельзя одной командой переместить файл на другой раздел)
Какой программный идентификатор (ProgID
) имеет корневой (главный) объект в объектной модели Microsoft Word?
(1) Word.Application
(2) Word.Server
(3) Word.Selection
Какой метод или свойство используются для изменения пароля пользователя?
(1) метод PutPassword
объекта User
(2) метод SetPassword
объекта User
(3) свойство Password
объекта User
Пусть файл со сценарием на языке JScript имеет имя lib.js. Каким образом подключить этот файл к сценарию с разметкой XML?
(1) <script language="JScript" filename="lib.js"/>
(2) <script language="JScript" data-src="lib.js"/>
(3) к сценарию с разметкой XML нельзя подключить внешний файл с другим сценарием
Какие из средств автоматизации являются оболочками командной строки?
(1) Cmd.exe
(2) WSH
(3) Windows PowerShell
Где хранятся записи контроля доступа к пространствам имен WMI?
(1) в репозитории WMI
(2) в системном реестре Windows
(3) в конфигурационном файле
Какую утилиту из пакета WMI Tools можно использовать в качестве постоянного потребителя событий WMI?
(1) WMI Event Registration Tool
(2) WMI CIM Studio
(3) WMI Event Viewer
Каким образом из сценария на языке VBScript можно подключиться к пространству имен CIMV2 на компьютере \Comp1
?
(1) Set objService = GetObject("WinMgmts:\Comp1RootCIMV2")
(2) Set objService = CreateObject("WinMgmts:\Comp1RootCIMV2")
(3) Set objService = GetObject("WINMGMTS:\Comp1RootCIMV2")
Пусть коллекция colProcesses
содержит экземпляры класса Win32_Process
, отобранные по некоторому WQL-запросу. Каким образом принудительно завершить работу всех процессов, соответствующих этим экземплярам (язык VBScript)?
(1)
For Each objProcess in colProcesses
objProcess.Terminate()
Next
(2)
For Each objProcess in colProcesses
objProcess.Kill()
Next
(3)
For Each objProcess in colProcesses
objProcess.Delete()
Next
С помощью какой команды можно увидеть имена всех процессов, запущенных в системе, и пути к исполняемым файлам, соответствующим этим процессам?
(1) PROCESS SHOW Name, ExecutablePath
(2) PROCESS GET Name, ExecutablePath
(3) PROCESS SELECT Name, ExecutablePath
Каким образом можно с помощью WMIC принудительно завершить все запущенные экземпляры браузера Internet Explorer на локальной машине?
(1) PROCESS WHERE Name="iexplore.exe" CALL Kill
(2) PROCESS WHERE Name="iexplore.exe" CALL Terminate
(3) PROCESS WHERE Name="iexplore.exe" CALL Stop
Какая из команд очистит экран консоли?
(1) Clear-Host
(2) clear
(3) cls
С помощью какой команды можно вывести на принтер с именем «HP2200» список запущенных процессов, упорядоченный по затраченному процессорному времени?
(1) Get-Process | Sort-Object cpu -Descending | Out-Printer -Name "HP2200"
(2) Get-Process | Sort-Object cpu -Descending > Printer "HP2200"
(3) ls | sort cpu –Desc-Process | Out-Printer "HP2200"
Какая команда позволит увидеть значение свойства CommandLine
статического класса System.Environment
?
(1) [System.Environment]::CommandLine
(2) [System.Environment].CommandLine
(3) [System.Environment]:CommandLine
Какую команду нужно выполнить, чтобы разрешить запуск локальных сценариев без цифровой подписи?
(1) Set-ExecutionPolicy RemoteSigned
(2) Set-ExecutionPolicy AllSigned
(3) Set-ExecutionPolicy Restricted
(4) Set-ExecutionPolicy Unrestricted
Требуется сформировать файл hidden _info.txt со списком всех скрытых файлов, находящихся в папке «C:Мои документы» и всех ее подпапках. Какой командой можно это сделать?
(1) dir /s /a:h "C:Мои документы*.*" > hidden_info.txt
(2) dir /a:h "C:Мои документы*.*" > hidden_info.txt
(3) dir /s /a:h C:Мои документы*.* > hidden_info.txt
Какой из указанных ниже операторов командного файла выведет на экран имена всех переменных среды?
(1) for /f "delims==" %%i in ('set') do echo %%i
(2) for /f "delims==" %%i in ("set") do echo %%i
(3) for /f "delims==" %%i in (set) do echo %%i
Какой объект необходимо использовать в языке JScript для перебора элементов коллекций?
(1) Array
(2) Enumerator
(3) Dictionary
Пусть объект WshShell
в сценарии на языке VBScript создан следующим образом: Set WshShell=WScript.CreateObject("WScript.Shell")
. Каким образом создать объект-коллекцию WshFldrs
, содержащую пути ко всем специальным папкам Windows?
(1) WshFldrs = WshShell.SpecialFolders
(2) Set WshFldrs = WshShell.SpecialFolders
(3) Set WshFldrs = WScript.CreateObject("WshShell.SpecialFolders")
С помощью каких методов можно удалить непустую папку?
(1) метод DeleteFolder
объекта FileSystemObject
(2) метод Delete
объекта Folder
(3) нельзя удалять непустую папку
Каким образом из сценария на языке VBScript установить связь с сервером автоматизации Microsoft Excel?
(1) Set XL=WScript.CreateObject("Excel.Application")
(2) Set XL=WScript.CreateObject("Excel.Server")
(3) Set XL=WScript.CreateObject("Excel.Workbook")
Какой метод или свойство позволяют получить коллецию всех пользователей определенной группы?
(1) метод GetMembers
соответствующего объекта Group
(2) метод Members
соответствующего объекта Group
(3) свойство Members
соответствующего объекта Group
В языке VBScript поддерживается функция InputBox
, выводящее диалоговое графическое окно. Можно ли эту функцию вызывать напрямую в JScript-коде?
(1) нет, нельзя
(2) можно, если JScript-код поместить в сценарий с разметкой XML
(3) можно, если перед именем функции указать префикс VBScript
Какие версии операционной системы Windows поддерживают оболочку PowerShell?
(1) Windows XP SP2 и выше
(2) все 32-разрядные версии Windows
(3) Windows 2000 и выше
Какие части составляют архитектуру WMI?
(1) управляемые ресурсы, библиотека поддержки сценариев WMI, управляющие программы
(2) управляемые ресурсы, ядро WMI, управляющие программы
(3) провайдеры WMI, менеджер объектов CIM, репозиторий CIM
Какая библиотека отвечает за поддержку объектов-серверов автоматизации, позволяющих из сценария WSH работать с классами и объектами пространства имен WMI?
(1) winmgmtr.dll
(2) wbemdisp.dll
(3) wmiprov.dll
Какой класс WMI позволяет принудительно завершить сеанс работы пользователя?
(1) Win32_OperatingSystem
(2) Win32_SystemSetting
(3) Win32_ComputerSystem
Какая команда позволяет завершить сеанс работы в WMIC?
(1) LOGOUT
(2) LOGOFF
(3) QUIT
Какие форматы вывода поддерживает WMIC по умолчанию?
(1) HTML-файлы
(2) текстовые файлы с разделителями (CSV-файлы)
(3) XML-файлы
Какая команда позволяет увидеть список всех командлетов, в названии которых содержится глагол Set
?
(1) GetCommand Set*
(2) Get_Command Set*
(3) Get-Command Set*
Требуется узнать, какие свойства и методы имеют объекты, возвращаемые командлетом с псевдонимом dir
. Какая команда позволяет сделать это?
(1) Get-Member | dir
(2) dir | gm
(3) dir | Get-Member
Требуется получить текстовый файл C:default.txt со списком имен всех классов WMI, зарегистрированных на локальном компьютере в пространстве имен RootDefault
. Список должен быть упорядочен по алфавиту. Какие команды решают эту задачу?
(1) Get-WmiObject -namespace rootdefault -list | Sort-Object name | Format-Table name > c:default.txt
(2) gwmi -namespace rootdefault -list | sort name | ft name > c:default.txt
(3) gwmi -namespace rootdefault | sort name | ft name | out-file c:default.txt
Предположим, что мы работаем в оболочке PowerShell интерактивно и в текущем каталоге имеется сценарий script.ps1. Какая команда запустит этот сценарий на выполнение?
(1) script.ps1
(2) .script.ps1
(3) .script
С помощью каких символов можно перенаправить выходной поток команды во внешний файл с сохранением прежнего содержимого этого файла?
Пусть командный файл состоит из десяти строк, причем в команде из восьмой строки допущена синтаксическая ошибка. Каким образом будет выполнен этот файл.
(1) не выполнится ни одна команда из файла
(2) выполнится семь первых команд, после чего выполнение файла прервется
(3) выполнятся все команды, кроме восьмой
Какие из указанных программ являются серверами сценариев WSH?
(1) cscript.exe
(2) wscript.exe
(3) cmd.exe
Какой метод позволяет считать строку из стандартного входного потока?
(1) WScript.StdIn.ReadLine
(2) WScript.StdIn.InputLine
(3) WScript.StdIn.ReadStr
Каким образом в сценарии на языке JScript можно создать экземпляр объекта FileSystemObject
?
(1) var FSO = WScript.CreateObject("Scripting.FileSystemObject");
(2) var FSO = new ActiveXObject("Scripting.FileSystemObject");
(3) var FSO = WScript.CreateObject("WScript.FileSystemObject")
;
С помощью какого метода можно запустить новый дочерний процесс в сценарии WSH?
(1) метод goRun
объекта WshShell
(2) метод Exec
объекта WshShell
(3) метод newAppActivate
объекта WshShell
Какой провайдер ADSI используется для доступа к базе данных локальных учетных записей на рабочей станции Windows?
(1) LDAP
(2) WinNT
(3) NDS
Какие из указанных ниже элементов входят в схему WS XML?
(1) <reference>
(2) <description>
(3) <subject>
Какие средства позволяют обращаться к объектам WMI непосредственно из командной строки?
(1) оболочка WMIC
(2) оболочка Windows PowerShell
(3) интерпретатор Cmd.exe
За выполнение каких задач отвечает репозиторий CIM?
(1) обработка событий WMI
(2) хранение экземпляров классов информационной модели CIM
(3) регистрация информации о провайдерах WMI
Методы какого объекта библиотеки поддержки сценариев WMI позволяют подключиться к пространству имен WMI?
(1) SWbemObject
(2) SWbemServices
(3) SWbemLocator
Какие дополнительные привилегии нужно указывать при подключении к подсистеме WMI для перезагрузки удаленного компьютера?
(1) RemoteShutdown
(2) дополнительных привилегий указывать не нужно
(3) Shutdown
Допустим, что нам необходимо выполнять команды WMIC на нескольких компьютерах, список которых хранится в файле C:list_comp.txt. Какой глобальный параметр WMIC следует для этого использовать?
(1) /NODE:@C:list_comp.txt
(2) /HOST:@C:list_comp.txt
(3) /COMP:@C:list_comp.txt
С помощью какой команды можно сформировать файл C:s.htm с несколькими HTML-таблицами, содержащими полные сведения (все свойства) о всех службах, зарегистрированных на локальном компьютере (одна таблица для каждой службы)?
(1) /OUTPUT:C:s.htm SERVICE LIST BRIEF /FORMAT:HTABLE
(2) /OUTPUT:C:s.htm SERVICE LIST BRIEF /FORMAT:HFORM
(3) /OUTPUT:C:s.htm SERVICE LIST /FORMAT:HFORM
Какая команда позволит увидеть, какому командлету соответствует псевдоним copy
?
(1) Get-Command copy
(2) Get-Alias copy
(3) Show-Alias copy
Какая из команд выведет список всех подкаталогов корневого каталога диска C:, начинающихся на букву «W»?
(1) dir c: | where {($_.mode -match "d") -and ($_.Name -match "w*")}
(2) dir c: | where {($_.mode -match "d") and ($_.Name -like "w*")}
(3) dir c: | where {($_.mode -match "d") -and ($_.Name -like "w*")}
Какая команда позволяет увидеть дату установки операционной системы на компьютере c IP-адресом 10.169.1.204?
(1) (gwmi -comp 10.169.1.204 win32_operatingsystem).installdate
(2) {gwmi os-computername 10.169.1.204 win32_operatingsystem}.installdate
(3) $os=gwmi -computername 10.169.1.204 win32_operatingsystem; $os.installdate
Пусть $a=3
. Какая из команд при выполнении выдаст сообщение "Значение переменной a равно 3"
?
(1) if ($a -le 3){write-host "Значение переменной a равно $a"}
(2) if ($a<=3){write-host "Значение переменной a равно $a"}
(3) if ($a -le 3){write-host 'Значение переменной a равно $a'}
Какой командой интерпретатора Cmd.exe
можно создать файл Dir_Help.txt
с описанием команды DIR
?
(1) dir -? | Dir_Help.txt
(2) dir -? > Dir_Help.txt
(3) dir /? > Dir_Help.txt
(4) dir /? & Dir_Help.txt
С помощью какого оператора можно выделить имя файла из первого параметра командной строки?
(1) %~Pi
(2) %~Ni
(3) %~Di
Какая команда запускает сценарий 1.vbs в текстовом режиме без вывода информации о версии и разработчике WSH?
(1) cscript.exe //nologo 1.vbs
(2) wscript.exe //nologo 1.vbs
(3) cscript.exe //logo 1.vbs
Какой из объектов WSH позволяет запускать новые процессы?
(1) WScript
(2) WshShell
(3) WshEnvironment
Пусть D
– экземпляр объекта Drive
, соответствующий логическому диску D:. В сценарии выполняется следующая строка (язык VBScript): n=D.TotalSize/(1024*1024*1024)
. Чему после этого равно значение переменной n
?
(1) общий объем диска D: в килобайтах
(2) общий объем диска D: в мегабайтах
(3) общий объем диска D: в гигабайтах
Пусть objCalc
– экземпляр объекта WshScriptExec
, соответствующий запущенному дочернему процессу. Каким образом внутри сценария можно узнать, продолжает ли работать данный процесс?
(1) если objCalc.Status=1
, то процесс продолжает работать
(2) если objCalc.Status=0
, то процесс продолжает работать
(3) если objCalc.Status=-1
, то процесс продолжает работать
Каким образом из сценария на языке VBScript провести связывание с локальной группой Group1
на рабочей станции Comp1
с операционной системой Windows XP?
(1) Set objGroup = GetObject("WinNT://Comp1/Group1")
(2) Set objGroup = GetObject("WinNT://Comp1/Group1, group")
(3) Set objGroup = GetObject("WinNT://Comp1, Group1, group")
Может ли в сценарии с разметкой XML отсутствовать элемент <package>
?
(1) нет, элемент <package>
необходимо указывать во всех сценариях
(2) да, если весь код в сценарии написан на одном и том же языке
(3) да, если сценарий содержит единственное задание
Какие языки можно использовать для написания сценариев PowerShell?
(1) Microsoft VBScript
(2) собственный язык Windows PowerShell
(3) Microsoft C#
Какими файлами поддерживается репозиторий CIM в Windows XP?
(1) index.btr
(2) objects.data
(3) winmgmt.exe
Допустим, что класс WMI имеет квалификатор SupportsUpdate
со значением True
. Что это означает?
(1) класс поддерживает операцию изменения (обновления) экземпляров
(2) класс является динамическим
(3) класс допускает изменение имен существующих свойств
Каким образом на локальной машине можно подключиться к пространству имен WMI от имени учетной записи, отличной от текущей учетной записи?
(1) с помощью метода ConnectServer
объекта SWbemLocator
(2) с помощью моникера WMI
(3) на локальной машине подключение к WMI всегда производится от имени текущей учетной записи
Какой класс WMI позволяет узнать серийный номер операционной системы?
(1) Win32_OperatingSystem
(2) Win32_SystemSetting
(3) Win32_ComputerSystem
Какой глобальный параметр позволяет сохранить во внешнем XML-файле c:wmic_out.xml историю команд WMIC?
(1) /APPEND:c:wmic_out.xml
(2) /OUTPUT:c:wmic_out.xml
(3) /RECORD:c:wmic_out.xml
Какая команда позволяет принудительно завершить сеанс работы пользователя на рабочей станции \Comp1
?
(1) /NODE:COMP1 OS WHERE(CSNAME="COMP1") CALL Win32ShutDown 0
(2) /NODE:COMP1 OS CALL Win32ShutDown 0
(3) /NODE:COMP1 OS WHERE(CSNAME="COMP1") CALL Win32ShutDown 1
Какая команда позволяет увидеть примеры использования командлета Get-Process
?
(1) Get-Process -?
(2) Get-Help Get-Process -full
(3) Get-Help Get-Process -Detailed
Какая из команд выведет список всех подкаталогов и файлов из корневого каталога диска C:, упорядоченный по времени последнего обращения к ним?
(1) dir c: | sort LastAccessTime
(2) dir c: | sort-object LastAccessTime
(3) dir c: | sort LastWriteTime
Требуется получить список всех служб, зарегистрированных на локальном компьютере, которые запускаются вручную. Для каждой такой службы должно быть указано ее имя, отображаемое имя и текущее состояние. Какие команды решают эту задачу?
(1) Get-WmiObject -Query 'select * from Win32_Service where StartMode="Manual"' | Format-Table Name, DisplayName, State
(2) gwmi -query 'select * from win32_service where StartMode="Manual"' | ft name, displayname, state
(3) gwmi win32_service -filter 'StartMode="Manual"' | ft name, displayname, state
Пусть $a=3
. Какая из команд при выполнении выдаст ровно одно сообщение "Значение переменной a равно 3"
?
(1) do{Write-Host "Значение переменной a равно $a";$a++}while($a -le 3)
(2) do{Write-Host 'Значение переменной a равно $a';$a++}while($a -le 3)
(3) do{Write-Host "Значение переменной a равно $a";$a++}while($a<=3)
Пусть текущим каталогом является C:folder1folder2folder3. Какой командой можно удалить файл 123.txt в каталоге folder1?
(1) del c:folder1123.txt
(2) del c:folder1123.txt
(3) del ....123.txt
(4) del ..123.txt
Пусть значением переменной %SystemRoot%
является строка "C:Windows"
(без кавычек). Какое значение будет иметь переменная s после выполнения в пакетном файле команды set s=%SystemRoot:C:=D:%
?
(1) C:Windows
(2) D:
(3) D:Windows
Какие языки поддерживает WSH по умолчанию (без установки дополнительных модулей)?
(1) Perl
(2) VBA
(3) VBScript
Какой из объектов WSH позволяет выводить информацию на экран или в диалоговое окно?
(1) WshShell
(2) WshEnvironment
(3) WScript
Пусть FSO
– экземпляр объекта FileSystemObject
. Каким образом можно создать временный текстовый файл со случайным именем (язык VBScript)?
(1) Set F=FSO.OpenTextFile(FSO.GetTempName, true)
(2) Set F=FSO.CreateTextFile(GetTempName, true)
(3) Set F=FSO.CreateTextFile(FSO.GetTempName, true)
Какие возможности имеются в WSH для имитации нажатия клавиш в активном окне приложения Windows?
(1) данная функциональность в WSH отсутствует
(2) метод Echo
объекта WScript
(3) метод SendKeys
объекта WshShell
Каким образом из сценария на языке VBScript провести связывание с корневым объектом класса Namespace
для провайдера службы каталогов Windows Active Directory?
(1) Set objNamespace = GetObject("WinNT:")
(2) Set objNamespace = GetObject("LDAP:")
(3) Set objNamespace = CreateObject("LDAP:")
Каким образом можно вывести краткое описание и примеры запуска определенного сценария с разметкой XML?
(1) при запуске сценария указать после его имени ключ /?
(2) внутри сценария вызвать метод WScript.Arguments.ShowUsage
(3) внутри сценария вызвать метод WScript.Arguments.ShowDescription
Какие средства позволяют обращаться к объектам COM непосредственно из командной строки?
(1) сценарии WSH
(2) оболочка Windows PowerShell
(3) интерпретатор Cmd.exe
Сколько дочерних классов может иметь тот или иной класс в пространстве имен CIM?
(1) произвольное количество
(2) только один
(3) ни одного, пространство имен CIM имеет только один уровень в глубину
Допустим, что метод WMI имеет квалификаторы Implemented
и Static
со значением True
. Что это означает?
(1) данный метод реализован в провайдере, однако его нельзя вызывать из экземпляров класса
(2) данный метод используется для создания экземпляров класса
(3) данный метод пока не реализован в провайдере
Каким образом из сценария на языке JScript создать экземпляр объекта SWbemLocator
?
(1) objLocator = new ActiveXObject("WbemScripting.SWbemLocator");
(2) objLocator = new ActiveXObject("WMIScripting.SWbemLocator");
(3) objLocator = new ActiveXObject("WMIScript.SWbemLocator");
Каким образом в сценарии получить коллекцию служб, запущенных на локальном компьютере и имеющих ручной режим запуска?
(1)
Set objWMIService = GetObject(«WinMgmts:RootCIMV2)
Set colServices = objWMIService.ExecQuery _
(«SELECT * FROM Win32_Service WHERE StartMode = ‘Manual'» )
(2)
Set objWMIService = GetObject(«WinMgmts:RootCIMV2)
colServices = objWMIService.ExecQuery _
(«SELECT * FROM Win32_Service WHERE StartMode = ‘Manual'» )
(3)
Set colServices = objWMIService.ExecQuery _
(«SELECT * FROM Service WHERE StartMode = ‘Manual'» )
Каким образом можно, не прибегая к псевдонимам WMIC, увидеть информацию о всех свойствах и методах класса Win32_Service
?
(1) CLASS Win32_Service
(2) WMI_PATH Win32_Service
(3) PATH Win32_Service
Пусть требуется узнать серийный номер операционной системы на компьютере \Comp1
. Какие команды позволят это сделать?
(1) /NODE:COMP1 OS LIST SerialNumber
(2) /NODE:COMP1 OS GET SerialNumber
(3) /NODE:COMP1 OS SHOW SerialNumber
Какой тип команд PowerShell реализуется в виде динамических библиотек?
(1) функции
(2) сценарии
(3) командлеты
Требуется вывести в виде списка всю доступную информация о файлах и подкаталогах корневого каталога диска C:. Какие команды решают эту задачу?
(1) dir c: | fl *
(2) dir c: | ft *
(3) dir c: | Format-List *
Какая команда позволит увидеть методы, имеющиеся у главного объекта сервера автоматизации Internet Explorer?
(1) New-Object -ComObject InternetExplorer.Application | Get-Member -MemberType Method
(2) New-Object InternetExplorer.Application | Get-Member -MemberType Method
(3) Create-Object -ComObject InternetExplorer.Application | Get-Member -MemberType Method
Требуется найти и сохранить в переменной $m
суммарный размер файлов с расширением avi, хранящихся в каталоге C:Video и всех его подкаталогах. Какие команды решают эту задачу?
(1) $m = 0; dir -recurse c:video* -include *.avi | foreach { $m += $_.length }
(2) $m = 0; dir -recurse c:video* -include *.avi | ForEach-Object { $m += $_.length }
(3) $m = 0; ForEach-Object ($f in dir -recurse c:video* -include *.avi) { $m += $f.length }
Что выведется на экран в результате выполнения команды: echo 1111 > c:klop.txt & type c:klop.txt > nul & echo 2222
?
(1) ничего не выведется
(2) строка 2222
(3) строки 1111 и 2222
С помощью какого оператора можно завершить работу командного файла?
(1) call :eof
(2) goto :end
(3) goto :eof
Имеется сценарий script.vbs. Какое имя будет иметь файл с параметрами WSH для этого сценария?
(1) myscript.wsh
(2) script.ws
(3) script.wsh
Какой из методов позволяет вывести сообщение в диалоговое окно?
(1) WScript.StdOut.WriteLine
(2) WScript.StdOut.Write
(3) WScript.Echo
Какой метод объекта FileSystemObject
позволяет удалять папки?
(1) DeleteFolder
(2) EraseFolder
(3) Delete
Пусть objUser
– экземпляр объекта User
, соответствующий новому пользователю. Каким образом записать в базу данных учетных записей информации об этом пользователе (язык VBScript)?
(1) objUser.SetInfo
(2) objUser.PutInfo
(3) objUser.Apply
К константам каких внешних объектов можно обращаться по их имени из сценария с разметкой XML?
(1) к константам любых объектов, подключенных с помощью элемента <object>
(2) к константам, описанным в библиотеке типов соответствующего объекта (связь с библиотекой типов должна быть установлена с помощью элемента <reference>
)
(3) из сценария с разметкой XML нельзя пользоваться константами внешних объектов
Какие средства позволяют управлять серверами автоматизации в интерактивном режиме?
(1) оболочка Windows PowerShell
(2) сценарии WSH
(3) оболочка Cmd.exe
Каким образом задается путь к объекту WMI, соответствующему службе Messenger
, работающей на компьютере \comp1
?
(1) \comp1WMI:Win32_ Service.Name="Messenger"
(2) \comp1CIMV2:Win32_Service.Name="Messenger"
(3) \comp1CIMV2:Win32_Service"Messenger"
С помощью какой стандартной утилиты можно остановить службу на удаленной машине, используя методы WMI?
(1) regedit.exe
(2) wmimgmt.msc
(3) wbemtest.exe
Какой из приведенных ниже моникеров WMI задает путь к объекту, соответствующему службе Messenger
, запущенной на локальном компьютере?
(1) "WinMgmts:\.RootCIMV2:Win32_Service.Name='Messenger'"
(2) "WinMgmts:RootCIMV2:Win32_Service.Name='Messenger'"
(3) "WinMgmts:\.RootCIMV2Win32_Service.Name='Messenger'"
Каким образом в сценарии получить коллекцию процессов, запущенных на локальном компьютере и начинающихся на букву «F»?
(1)
Set objService = GetObject(«WinMgmts:RootCIMV2»)
Set colProcesses = objService.ExecQuery(«SELECT * FROM Win32_Process WHERE Name LIKE ‘F*'»)
(2)
Set objService = GetObject(«WinMgmts:RootCIMV2»)
Set colProcesses = objService.ExecQuery(«SELECT * FROM Win32_Process WHERE Name LIKE ‘F%'»)
(3)
Set objService = GetObject(«WinMgmts:RootCIMV2»)
Set colProcesses = objService.ExecQuery(«SELECT * FROM Win32_Process WHERE Name LIKE ‘F_'»)
С помощью какой команды можно создать новый экземпляр класса Win32_Process
(запустить новый процесс) с именем Notepad.exe?
(1) CLASS Win32_Process DO CREATE Notepad.exe
(2) CLASS Win32_Process CALL CREATE Notepad.exe
(3) PROCESS CALL CREATE Notepad.exe
Допустим, что на локальном компьютере служба сервера (Lanmanserver) запускается вручную. С помощью какой команды WMIC можно отключить данную службу?
(1) SERVICE WHERE (Name="Lanmanserver") SET StartMode="Disabled"
(2) PATH Win32_Service WHERE (Name="Lanmanserver") SET StartMode="Disabled"
(3) этого сделать нельзя, свойство StartMode
псевдонима SERVICE
доступны только для чтения
Какой псевдоним используется для командлета Get-ChildItem
в целях совместимости имени с оболочкой Cmd.exe?
Требуется вывести в текстовый файл в формате ASCII C:RunningServices.txt информацию о всех службах, работающих на компьютере (имя, отображаемое имя и состояние). Какие команды решают эту задачу?
(1) Get-Service | where {$_.Status -like "Run*"} | ft name, displayname, status > C:RunningServices.txt
(2) Get-Service | where {$_.Status -like "Run*"} | ft name, displayname, status | Out-File C:RunningServices.txt
(3) Get-Service | where {$_.Status -like "Run*"} | ft name, displayname, status | Out-File C:RunningServices.txt -Encoding ASCII
Какая команда позволит увидеть методы, имеющиеся у статического класса System.Environment
?
(1) System.Environment | Get-Member -Static -MemberType Method
(2) [System.Environment] | Get-Member –Static -MemberType Method
(3) [System.Environment] | Get-Member -MemberType Method
Какой командлет позволяет установить нужную политику выполнения?
(1) Set-ExecutionPolicy
(2) Get-ExecutionPolicy
(3) Put-ExecutionPolicy
Пусть в текущем каталоге имеются текстовые файлы 1.txt и 2.txt. Требуется объединить эти два файла в файл 3.txt, причем строки результирующего файла 3.txt должны быть отсортированы по алфавиту. Какой командой можно это сделать?
(1) copy 1.txt + 2.txt temp.txt & sort temp.txt > 3.txt & del temp.txt
(2) copy 1.txt + 2.txt 3.txt & sort 3.txt > 3.txt
(3) sort 1.txt > 3.txt & sort 2.txt >> 3.txt
С помощью какого варианта команды if
можно проанализировать код выхода вызванной программы?
(1) if exists …
(2) if defined …
(3) if errorlevel …
Какие из имен являются допустимыми для файла со сценарием на языке VBScript?
(1) myscript.vb
(2) сценарий.vbs
(3) сценарий.bas
В каком свойстве хранится полный путь к каталогу, откуда был запущен сценарий?
(1) WshShell.CurrentDirectory
(2) WScript.Path
(3) WScript.ScriptFullName
С помощью какого метода объекта FileSystemObject
можно папку C:Folder1 переименовать в папку D:Folder2?
(1) MoveFolder
(2) такого метода нет
(3) Move
Каким образом из сценария на языке VBScript установить связь с сервером автоматизации Microsoft Word?
(1) Set WA=WScript.CreateObject("Word.Application")
(2) Set WA=WScript.CreateObject("Word.Server")
(3) Set WA=WScript.CreateObject("Word.Selection")
Пусть objUser
– экземпляр объекта User
, соответствующий определенному пользователю. Каким образом изменить пароль этого пользователя на «11111111» (язык VBScript)?
(1) objUser.SetPassword "11111111"
(2) objUser.Password="11111111"
(3) objUser.PutPassword "11111111"
Пусть файл со сценарием на языке VBScript имеет имя lib.vbs. Каким образом подключить этот файл к сценарию с разметкой XML?
(1) к сценарию с разметкой XML нельзя подключить внешний файл с другим сценарием
(2) <script language="VBScript" filename="lib.vbs"/>
(3) <script language="VBScript" data-src="lib.vbs"/>
Какие средства автоматизации имеют встроенную справочную систему?
(1) интерпретатор Cmd.exe
(2) WSH
(3) Windows PowerShell
Какое разрешение безопасности должен иметь пользователь для доступа к пространству имен WMI на удаленном компьютере?
(1) Включить учетную запись (Enable Account)
(2) Прочесть безопасность (Read Security)
(3) Включить удаленно (Remote Enable)
С помощью каких утилит из пакета WMI Tools можно вызывать методы классов и объектов WMI?
(1) WMI Event Registration Tool
(2) WMI CIM Studio
(3) WMI Object Browser
Какой из приведенных ниже моникеров WMI нужно использовать для подключения к пространству имен CIMV2 на рабочей станции \Comp1
с дополнительными привилегиями на выключение и удаленное выключение компьютера?
(1) "WinMgmts: {(Shutdown,RemoteShutdown)}!\Comp1RootCIMV2"
(2) "WinMgmts: {Shutdown,RemoteShutdown}!\Comp1RootCIMV2"
(3) "WinMgmts: {(!Shutdown,!RemoteShutdown)}!\Comp1RootCIMV2"
Требуется на локальной машине принудительно завершить работу всех процессов, начинающихся на букву «F». С помощью какого сценария это можно сделать?
(1)
Set objService = GetObject(«WinMgmts:RootCIMV2»)
Set colProcesses = objService.ExecQuery(«SELECT * FROM Win32_Process WHERE Name LIKE ‘F%'»)
For Each objProcess in colProcesses
objProcess.Terminate()
Next
(2)
Set objService = GetObject(«WinMgmts:RootCIMV2»)
Set colProcesses = objService.ExecQuery(«SELECT * FROM Win32_Process WHERE Name LIKE ‘F%'»)
For Each objProcess in colProcesses
objProcess.Kill()
Next
(3)
Set objService = GetObject(«WinMgmts:RootCIMV2»)
Set colProcesses = objService.ExecQuery(«SELECT * FROM Win32_Process WHERE Name LIKE ‘F%'»)
For Each objProcess in colProcesses
objProcess.Delete()
Next
С помощью какой команды можно вывести имена всех процессов, запущенных в системе, и пути к исполняемым файлам, соответствующим этим процессам в формате CSV (значения свойств разделены запятыми)?
(1) PROCESS SHOW Name, ExecutablePath /FORMAT:CSV
(2) PROCESS GET Name, ExecutablePath /FORMAT:CSV
(3) PROCESS SELECT Name, ExecutablePath /FORMAT:CSV
Каким образом можно с помощью WMIC принудительно завершить все запущенные экземпляры браузера Internet Explorer на рабочей станции \Comp1
?
(1) /NODE:Comp1 PROCESS WHERE Name="iexplore.exe" CALL Kill
(2) /NODE:Comp1 PROCESS WHERE Name="iexplore.exe" CALL Terminate
(3) /NODE:Comp1 PROCESS WHERE Name="iexplore.exe" CALL Stop
Предположим, что текущим каталогом является C:Temp. Какая из команд сделает текущим корневой каталог диска C:?
(1) cd
(2) Set-Location
(3) sl
Какой командлет в конвейере позволяет подавить вывод предыдущей команды?
(1) Out-Nil
(2) Out-Null
(3) Write-Null
Какая команда позволит увидеть значение свойства MachineName
статического класса System.Environment
?
(1) [System.Environment]::MachineName
(2) [System.Environment].MachineName
(3) [System.Environment]:MachineName
Какую команду нужно выполнить, чтобы запретить запуск сценариев без цифровой подписи?
(1) Set-ExecutionPolicy RemoteSigned
(2) Set-ExecutionPolicy AllSigned
(3) Set-ExecutionPolicy Restricted
Требуется сформировать файл ro _info.txt со списком всех файлов, имеющих атрибут «Только для чтения», которые находятся в папке «C:Мои документы» и всех ее подпапках. Какой командой можно это сделать?
(1) dir /s /a:r "C:Мои документы*.*" > ro_info.txt
(2) dir /a:r "C:Мои документы*.*" > ro_info.txt
(3) dir /s /a:r C:Мои документы*.* > ro_info.txt
Какой из языков позволяет напрямую из сценариев вызывать методы объектов WMI?
Пусть объект WshShell
в сценарии на языке VBScript создан следующим образом: Set WshShell=WScript.CreateObject("WScript.Shell")
. Каким образом создать объект-коллекцию WshEnv
, содержащую все переменные среды?
(1) Set WshEnv = WshShell.Environment
(2) WshEnv = WshShell.Environment
(3) Set WshEnv = WScript.CreateObject("WshShell.Environment ")
С помощью каких методов можно удалить непустую папку?
(1) метод DeleteFolder
объекта FileSystemObject
(2) метод Delete
объекта Folder
(3) нельзя удалять непустую папку
Какой программный идентификатор (ProgID
) имеет корневой (главный) объект в объектной модели Microsoft Excel?
(1) Excel.Workbook
(2) Excel.Server
(3) Excel.Application
Пусть objUser
– экземпляр объекта User
, соответствующий определенному пользователю. Каким образом изменить пароль этого пользователя на «11111111» (язык VBScript)?
(1) objUser.SetPassword "11111111"
(2) objUser.Password="11111111"
(3) objUser.PutPassword "11111111"
В языке VBScript поддерживается функция InputBox
, выводящее диалоговое графическое окно. Можно ли данную функциональность использовать в JScript-коде?
(1) можно, вызывая в JScript-коде внутри сценария с разметкой XML функцию InputBox
напрямую
(2) нет, нельзя
(3) можно, поместив JScript-код в сценарий с разметкой XML и создав в этом сценарии функцию на языке VBScript, внутри которой будет вызываться функция InputBox
К какой группе принадлежит классCIM_LogicalFile
?
(1) системный класс
(2) класс общей модели
(3) класс модели расширения
Цель работы: освоить принципы работы с интерфейсом операционной системы «командная строка», получить представление о составе и функциональном назначении внутренних и внешних команд интерпретатора OC Windows cmd.exe (command.com); изучить прин-
ципы создания командных файлов, состав и функциональное назначение команд, используемых при создании командных файлов, получить навыки использования командных файлов как средства автоматизации работы пользователя.
1.1. Общие сведения
Современные операционные системы, системное и прикладное программное обеспечение предоставляют пользователю возможность управления вычислительным процессом (в широком смысле этого понятия) посредством интерфейса пользователя. Под интерфейсом понимается в данном случае программное обеспечение коммуникации пользователя и вычислительной системы как совокупности аппаратного и программного обеспечения.
Принято выделять два основных вида организации интерфейса: командная строка и графический интерфейс пользователя.
Командная строка (command line interface – CLI) – это такой ин-
терфейс, в котором взаимодействие пользователя и операционной системы или приложения осуществляется путем набора текстовых команд (возможно с параметрами) с клавиатуры.
Графический интерфейс пользователя (graphical user interface – GUI) – это такой интерфейс, в котором взаимодействие пользователя и операционной системы или приложения производится путем управления графическими объектами, в том числе и текстом.
Командная строка как способ взаимодействия пользователя и компьютера появилась гораздо раньше графического интерфейса. Последний, несмотря на свою относительную молодость, быстро завоевал популярность, так как визуальное представление информации является интуитивно понятным и удобным в использовании. Операционные системы семейства Windows ориентированы, в первую очередь, на графический интерфейс, однако использование командной строки в ряде случаев не только не менее эффективно, но зачастую является наиболее оптимальным способом управления вычислительным процессом, особенно при администрировании систем. Кроме того, командная строка является базовым интерфейсом операционных систем
семейства UNIX. Универсальность командной строки как интерфейса позволит пользователю, освоившему этот механизм для одного вида операционной системы, относительно легко освоить его и на другой.
Запустить командный интерпретатор Windows можно, набрав в строке «Открыть» окна «Запуск программы» команду cmd1 (для операционных систем Windows 2000/XP и более поздних версий). Указанное окно открывается после выбора пункта «Выполнить…» в меню «Пуск». При этом откроется консольное окно (пример такого окна для Windows 2000 показан рис. 1.1). Щелчок правой кнопкой мыши по заголовку окна открывает доступ к меню, среди пунктов которого имеется пункт «Свойства», при выборе которого открывается диалоговое
Рис. 1.1. Командная строка Windows 2000.
окно настройки параметров окна командной строки.
Получить справку о полном составе команд интерпретатора можно, набрав команду help2. Кроме того, справочная система Windows предоставляет информацию о командах и их параметрах. Для получения справки о конкретной команде необходимо после имени команды через пробел набрать ключ /?, либо набрать имя команды, о которой требуется справка, после команды help через пробел. Например:
1Здесь и далее по тексту команды и параметры ввода будут выделяться шрифтом Courier с полужирным начертанием.
2В ходе выполнения этой и последующих работ, перед запуском любой команды внимательно ознакомьтесь с содержанием справки по данной команде. Запрещается выполнение любых команд, влекущее нарушение нормального функционирования компьютера, изменение настроек операционной системы и изменение или уничтожение информации других пользователей.
help /? help help
Часть команд реализованы «внутри» командного интерпретатора cmd.exe – это, так называемые, внутренние команды, многие их которых мигрировали в Windows из операционной системы DOS. Другие команды реализованы в виде отдельных утилит и расположены, как правило, в той же директории, что и cmd.exe (по умолчанию это
..WINNTsystem32 или ..WINDOWSsystem32, для более поздних вер-
сий ОС имеются аналогичные директории).
Командные (пакетные) файлы
При работе пользователя Windows (в том числе и администратора) часто возникает ситуация, когда необходимо регулярно выполнять группу последовательных операций: например, удалить «лишние» файлы, создать необходимую папку, выбрать файлы по определенному критерию, скопировать эти файлы в созданную папку и затем упаковать ее в архив. Безусловно, все эти операции не являются сложными или требующими каких-либо специальных средств, однако в совокупности требуют относительно много времени и внимания со стороны пользователя. Выполнение таких часто повторяющихся операций может быть автоматизировано путем использования командных файлов.
Командным (пакетным) файлом называется неформатированный текстовый файл, содержащий одну или несколько команд операционной системы. Имена командных файлов имеют расширения .cmd (Windows 2000/XP/Vista/7/) или .bat (Windows 95/98/ME). Операцион-
ная система последовательно обрабатывает команды пакетного файла после ввода его имени в командной строке или запуска из другой программы.
В командный файл могут входить как внутренние, так и внешние команды Windows, кроме этого, существует набор команд, предназначенных для использования в пакетных файлах, хотя некоторые из них могут использоваться и в командной строке. Это команды call, echo, for, if, goto, rem, shift и др. Кроме того, в командных файлах используются специальные символы: @ (отключение вывода на экран), % (для организации работы с замещаемыми параметрами и переменными окружения), >, <, >>, | (перенаправление вводавывода), == (операция проверки равенства) и др. Подробную информацию об использовании этих команд и специальных символов можно получить в справочной системе Windows.
Для создания командного файла может использоваться любой текстовый редактор, работающий с неформатированным текстом, на-
пример Notepad.exe. Созданный командный файл сам может считаться внешней командой и может быть запущен как из командной строки, так и из другого командного файла. Кроме того, для командного файла может быть создан ярлык, что упрощает доступ к командному файлу.
Рассмотрим в качестве примера командный файл, автоматизирующий копирование всех файлов c расширением *.doc из заданной директории на диск A.
@rem Clear current doc files @echo Insert disk A
@del a:*.doc
@rem Copy from given directory to disk A @copy %1*.doc a:
Первая и четвертая строка командного файла – это комментарии, текст которых вводится после команды rem. Вторая строка выводит текст, предлагающий вставить пользователю дискету в дисковод A, третья предполагает удаление с диска A существующих файлов с расширением *.doc, последняя производит собственно копирование. При этом в качестве папки источника копирования будет использована папка, которую пользователь должен указать в командной строке через пробел после имени командного файла. Такой способ задания аргументов осуществляется при помощи замещаемых параметров: %0 – имя командного файла, %1 – первый аргумент в командной строке, %2
– второй и т.д. В процессе выполнения командного файла эти идентификаторы заменяются фактическими аргументами – строками, которые были переданы командному файлу в момент его запуска.
1.2. Задание
1.Ознакомиться с составом и функциональным назначением команд
Windows.
2.Исследовать команды работы с файловой системой, диагностирования сети, управления приложениями и команды, использующиеся при создании командных файлов.
3.Выбрать несколько признаков классификации и, задав их значения, провести классификацию команд. В результате необходимо получить не менее четырех групп команд. В отчете по лабораторной работе привести результаты классификации в виде таблицы:
Общий признак |
Команды |
Характерные особенности |
… |
… |
… |
4.Разработать и отладить командный файл в соответствие с вариантом, указанным преподавателем (в задании указано то, что должен
выполнять разработанный командный файл). Для отладки командного файла создать тестовые исходные данные, например директорию, содержащую файлы с разными расширениями, например
*.doc, *.xls, *.pas, *.cpp, *.cpp и др.
Вариант Задание Найти все файлы с расширением, задаваемым в качестве
параметра командного файла, содержащие некоторую за-
1данную строку (второй параметр командного файла), занести результаты поиска (имена файлов) в выходной файл и упаковать этот файл в архив (любым архиватором).
Занести имена файлов и каталогов, упорядоченные по именам в выходной файл. Перечень анализируемых каталогов
2находится во входном файле. Имена входного и выходного файла должны передаваться в качестве параметров командного файла.
Создать вложенную директорию, в качестве имени которой должна использоваться текущая дата. Скопировать в созданную директорию все файлы с расширением, задавае-
3мым в качестве параметра командного файла, заархивировать ее и переместить архив на съемный носитель. При выполнении операции со съемным диском попытаться выполнить проверку на его наличие.
Создать вложенную директорию, в качестве имени которой должна использоваться текущая дата. Скопировать в созданную директорию архив со съемного диска, извлечь из
4него и переместить файлы, имеющие определенное расширение (задается в качестве параметра), в текущую директорию. При выполнении операции со съемным диском попытаться выполнить проверку на его наличие.
Втекстовом файле, имя которого задается в качестве параметра, задан список фамилий. Создать каталоги с соответ-
5ствующими именами. Обратить внимание на корректное отображение в именах каталогов кириллицы. (Дополнительно – при создании папок пронумеровать их).
Втекстовом файле, имя которого задается в качестве пара-
6метра, задан список приложений. Остановить выполнение заданных приложений.
Переименовать файлы в текущей папке, удовлетворяющие
7шаблону, который задается в качестве первого параметра командного файла, дописывая в имя строку, передаваемую
вкачестве второго параметра.
Сравнить содержимое двух директорий. Результат сравне-
8ния (имена файлов, принадлежащих одной папке и отсутствующих в другой, и наоборот) занести в файл. Имена папок и файла должны задаваться в качестве параметра.
Текстовый файл, имя которого задается в качестве пара-
9метра, содержит неупорядоченный список строк. Упорядочить строки и занести эти строки в файл, имя которого задается в качестве второго параметра.
Создать файл, имя которого задается в качестве параметра,
содержащий перечень приложений, выполняющихся в сис-
10теме в моменты времени, которые заданы в файле, имя которого также передается в качестве параметра. Списки приложений должны быть помечены временем, при котором производилась проверка.
Исходный каталог содержит файлы, имеющих три типа расширений (например, *.doc, *.xls, *.ppt). Разработать командный файл, который осуществляет разделение (сорти-
11ровку) исходных файлов на три подкаталога, имена которых включают дату запуска процедуры сортировки и тип расширения (например, «20120901 xls»). Имя обрабатываемого каталога должно передаваться в качестве параметра командного файла.
Каталог содержит файлы. Разработать командный файл, который осуществляет добавление в начала имен файлов их номера, причем, в зависимости от количества файлов, необходимо обеспечить наличие в начале номера необхо-
12димого количества «выравнивающих» нулей. (Если файлов меньше десяти, но нули отсутствуют, если количество файлов больше 10, но меньше 100, то номера первых файлов должны иметь формат «01», «02» и т. д.). Имя обрабатываемого каталога должно передаваться в качестве параметра командного файла.
Два каталога содержат файлы, имеющие одинаковые и разные имена. Командный файл должен обеспечить копирование файлов, имеющих разные имена в третью директорию
13(имя которой – текущая дата), создаваемую автоматически при запуске командного файла. Имена обрабатываемых каталогов должны передаваться в качестве параметров командного файла.
Фрагмент файловой системы содержит большое количество мультимедиа файлов различного типа. Разработать командный файл, который осуществляет подсчет количества
14файлов каждого типа и их объем и записывает эту информацию в выходной файл. Имя анализируемого каталога и имя выходного файла задаются в качестве параметров командного файла.
Во входном файле задан перечень динамических библиотек (dll). Разработать командный файл, который формирует
15выходной файл, содержащий имена процессов (приложений), которые используют эти динамические библиотеки. Имена входного и выходного файлов задаются в качестве параметров командного файла.
Во входном текстовом файле содержатся логины пользователей и приложения (процессы), которые не должны использоваться соответствующими пользователями. Разработать командный файл, который сканирует выпол-
16няющиеся приложения и в случае обнаружения недопустимого для пользователя приложения завершает его, делая соответствующую запись в журнале (выходном файле). Имена входного и выходного файлов передаются в командный файл в качестве параметров.
В каталоге хранятся текстовые файлы, в каждом из которых от 10 до 100 строк (например, названий песен). Разработать командный файл, который осуществляет слияние
17указанных текстовых файлов в один (построчно) и при этом последовательно нумерует строки. Имена входного и выходного файлов передаются в командный файл в качестве параметров.
Входной каталог (имя задается в качестве параметра командного файла) содержит различные «офисные» документы (текстовые, таблицы, презентации и т. д.). Разработать
18командный файл, который формирует выходной файлотчет, содержащий дату формирования отчета и далее строки – категория файлов и количество файлов в этой категории. Имя выходного файла также задается в качестве параметра командного файла.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Какой командой интерпретатора Cmd.exe можно создать файл xcopy_help.txt с описанием всех параметров команды XCOPY?
В каком каталоге в Windows XP хранится файл cmd.exe?
Какой командой интерпретатора Cmd.exe можно создать файл Dir_Help.txt с описанием команды DIR?
Какой командой интерпретатора Cmd.exe можно создать файл Dir_Help.txt с описанием команды DIR?
С помощью какого оператора можно завершить работу командного файла?
Какой из указанных ниже операторов командного файла выведет на экран имена всех переменных среды?
Можно ли в командных файлах пользоваться внутренними командами интерпретатора Cmd.exe и каким образом?
Какой из указанных ниже операторов командного файла выведет на экран список всех папок в корне на диске D:?
Пусть файл со сценарием на языке VBScript имеет имя lib.vbs. Каким образом подключить этот файл к сценарию с разметкой XML?
Пусть файл со сценарием на языке JScript имеет имя lib.js. Каким образом подключить этот файл к сценарию с разметкой XML?
Аннотация: Рассматриваются внутренние команды, поддерживаемые интерпретатором Cmd.exe, и наиболее часто используемые внешние команды (утилиты командной строки). Описываются механизмы перенаправления ввода/вывода, конвейеризации и условного выполнения команд. Даются примеры команд для работы с файловой системой
Оболочка командной строки Windows. Интерпретатор Cmd.exe
В операционной системе Windows, как и в других операционных системах, интерактивные (набираемые с клавиатуры и сразу же выполняемые) команды выполняются с помощью так называемого командного интерпретатора, иначе называемого командным процессором или оболочкой командной строки (command shell). Командный интерпретатор или оболочка командной строки — это программа, которая, находясь в оперативной памяти, считывает набираемые вами команды и обрабатывает их. В Windows 9x, как и в MS-DOS, командный интерпретатор по умолчанию был представлен исполняемым файлом command.com. Начиная с версии Windows NT, в операционной системе реализован интерпретатор команд Cmd.exe, обладающий гораздо более мощными возможностями.
Запуск оболочки
В Windows NT/2000/XP файл Cmd.exe, как и другие исполняемые файлы, соответствующие внешним командам операционной системы, находятся в каталоге %SystemRoot%SYSTEM32 (значением переменной среды %SystemRoot% является системный каталог Windows, обычно C:Windows или C:WinNT). Для запуска командного интерпретатора (открытия нового сеанса командной строки) можно выбрать пункт Выполнить… (Run) в меню Пуск (Start), ввести имя файла Cmd.exe и нажать кнопку OK. В результате откроется новое окно (см. рис. 2.1), в котором можно запускать команды и видеть результат их работы.
Рис.
2.1.
Командное окно интерпретатора Cmd.exe в Windows XP
Внутренние и внешние команды. Структура команд
Некоторые команды распознаются и выполняются непосредственно самим командным интерпретатором — такие команды называются внутренними (например, COPY или DIR ) Другие команды операционной системы представляют собой отдельные программы, расположенные по умолчанию в том же каталоге, что и Cmd.exe, которые Windows загружает и выполняет аналогично другим программам. Такие команды называются внешними (например, MORE или XCOPY ).
Рассмотрим структуру самой командной строки и принцип работы с ней. Для того, чтобы выполнить команду, вы после приглашения командной строки (например, C:> ) вводите имя этой команды (регистр не важен), ее параметры и ключи (если они необходимы) и нажимаете клавишу <Enter>. Например:
C:>COPY C:myfile.txt A: /V
Имя команды здесь — COPY, параметры — C:myfile.txt и A:, а ключом является /V. Отметим, что в некоторых командах ключи могут начинаться не с символа /, а с символа – (минус), например, -V.
Многие команды Windows имеют большое количество дополнительных параметров и ключей, запомнить которые зачастую бывает трудно. Большинство команд снабжено встроенной справкой, в которой кратко описываются назначение и синтаксис данной команды. Получить доступ к такой справке можно путем ввода команды с ключом /?. Например, если выполнить команду ATTRIB /?, то в окне MS-DOS мы увидим следующий текст:
Отображение и изменение атрибутов файлов. ATTRIB [+R|-R] [+A|-A] [+S|-S] [+H|-H] [[диск:][путь]имя_файла] [/S] + Установка атрибута. - Снятие атрибута. R Атрибут "Только чтение". A Атрибут "Архивный". S Атрибут "Системный". H Атрибут "Скрытый". /S Обработка файлов во всех вложенных папках указанного пути.
Для некоторых команд текст встроенной справки может быть довольно большим и не умещаться на одном экране. В этом случае помощь можно выводить последовательно по одному экрану с помощью команды MORE и символа конвейеризации |, например:
В этом случае после заполнения очередного экрана вывод помощи будет прерываться до нажатия любой клавиши. Кроме того, используя символы перенаправления вывода > и >>, можно текст, выводимый на экран, направить в текстовый файл для дальнейшего просмотра. Например, для вывода текста справки к команде XCOPY в текстовый файл xcopy.txt, используется следующая команда:
Замечание
Вместо имени файла можно указывать обозначения устройств компьютера. В Windows поддерживаются следующие имена устройств: PRN (принтер), LPT1–LPT3 (соответствующие параллельные порты), AUX (устройство, присоединяемое к последовательному порту 1), COM1–COM3 (соответствующие последовательные порты), CON (терминал: при вводе это клавиатура, при выводе — монитор), NUL (пустое устройство, все операции ввода/вывода для него игнорируются).
Перенаправление ввода/вывода и конвейеризация (композиция) команд
Рассмотрим более подробно поддерживаемые в Windows UNIX-подобные концепции переназначения устройств стандартного ввода/вывода и конвейерного выполнения команд.
С помощью переназначения устройств ввода/вывода одна программа может направить свой вывод на вход другой или перехватить вывод другой программы, используя его в качестве своих входных данных. Таким образом, имеется возможность передавать информацию от процесса к процессу при минимальных программных издержках. Практически это означает, что для программ, которые используют стандартные входные и выходные устройства, операционная система позволяет:
- выводить сообщения программ не на экран (стандартный выходной поток), а в файл или на принтер (перенаправление вывода);
- читать входные данные не с клавиатуры (стандартный входной поток), а из заранее подготовленного файла (перенаправление ввода);
- передавать сообщения, выводимые одной программой, в качестве входных данных для другой программы (конвейеризация или композиция команд).
Из командной строки эти возможности реализуются следующим образом. Для того, чтобы перенаправить текстовые сообщения, выводимые какой-либо командой, в текстовый файл, нужно использовать конструкцию
Если при этом заданный для вывода файл уже существовал, то он перезаписывается (старое содержимое теряется), если не существовал — создается. Можно также не создавать файл заново, а дописывать информацию, выводимую командой, в конец существующего файла. Для этого команда перенаправления вывода должна быть задана так:
С помощью символа < можно прочитать входные данные для заданной команды не с клавиатуры, а из определенного (заранее подготовленного) файла:
Приведем несколько примеров перенаправления ввода/вывода.
- Вывод встроенной справки для команды COPY в файл copy.txt:
- Добавление текста справки для команды XCOPY в файл copy.txt:
- Ввод новой даты из файла date.txt (DATE — это команда для просмотра и изменения системной даты):
Если при выполнении определенной команды возникает ошибка, то сообщение об этом по умолчанию выводится на экран. В случае необходимости сообщения об ошибках (стандартный поток ошибок) можно перенаправить в текстовый файл с помощью конструкции
В этом случае стандартный вывод будет производиться в файл. Также имеется возможность информационные сообщения и сообщения об ошибках выводить в один и тот же файл. Делается это следующим образом:
Например, в приведенной ниже команде стандартный выходной поток и стандартный поток ошибок перенаправляются в файл copy.txt:
XCOPY A:1.txt C: > copy.txt 2>&1
Наконец, с помощью конструкции
можно использовать сообщения, выводимые первой командой, в качестве входных данных для второй команды (конвейер команд).
Используя механизмы перенаправления ввода/вывода и конвейеризации, можно из командной строки посылать информацию на различные устройства и автоматизировать ответы на запросы, выдаваемые командами или программами, использующими стандартный ввод. Для решения таких задач подходит команда
которая выводит сообщение на экран. Рассмотрим примеры использования этой команды.
- Посылка символа прогона на принтер:
- Удаление всех файлов в текущем каталоге без предупреждения (автоматический положительный ответ на запрос об удалении):
- Соединение по телефону из командной строки (модем связан с портом COM2):
ECHO ATDT 1(123)555-1234 > COM2
Команды MORE и SORT
Одной из наиболее часто использующихся команд, для работы с которой применяется перенаправление ввода/вывода и конвейеризация, является MORE. Эта команда считывает стандартный ввод из конвейера или перенаправленного файла и выводит информацию частями, размер каждой из которых не больше размера экрана. Используется MORE обычно для просмотра длинных файлов. Возможны три варианта синтаксиса этой команды:
MORE [диск:][путь]имя_файла MORE < [диск:][путь]имя_файла имя_команды | MORE
Параметр [диск:][путь]имя_файла определяет расположение и имя файла с просматриваемыми на экране данными. Параметр имя_команды задает команду, вывод которой отображается на экране (например, DIR или команда TYPE, использующаяся для вывода содержимого текстового файла на экран). Приведем два примера.
Для поэкранного просмотра помощи команды DIR используется команда:
Для поэкранного просмотра текстового файла news.txt возможны следующие варианты команд:
MORE news.txt MORE < news.txt TYPE news.txt | MORE
Другой распространенной командой, использующей перенаправление ввода/вывода и конвейеризацию, является SORT. Эта команда работает как фильтр: она считывает символы в заданном столбце, упорядочивает их в возрастающем или убывающем порядке и выводит отсортированную информацию в файл, на экран или другое устройство. Возможны два варианта синтаксиса этой команды:
SORT [/R] [/+n] [[диск1:][путь1]файл1] [> [диск2:][путь2]файл2]
или
[команда ] | SORT [/R] [/+n] [> [диск2:][путь2]файл2]
В первом случае параметр [диск1:][путь1]файл1 определяет имя файла, который нужно отсортировать. Во втором случае будут отсортированы выходные данные указанной команды. Если параметры файл1 или команда не заданы, то SORT будет считывать данные с устройства стандартного ввода.
Параметр [диск2:][путь2]файл2 задает файл, в который будет направляться сортированный вывод; если этот параметр не задан, то вывод будет направлен на устройство стандартного вывода.
По умолчанию сортировка выполняется в порядке возрастания. Ключ /R позволяет изменить порядок сортировки на обратный (от Z к A и затем от 9 до 0). Например, для поэкранного просмотра отсортированного в обратном порядке файла price.txt, нужно задать следующую команду:
SORT /R < price.txt |MORE
Ключ /+n задает сортировку в файле по символам n-го столбца. Например, /+10 означает, что сортировка должна осуществляться, начиная с 10-й позиции в каждой строке. По умолчанию файл сортируется по первому столбцу.
Пакетные файлы
- Пакетные файлы
-
BAT
Расширение файла: .bat, .cmd (только Windows NT)
Тип формата: Скриптовый язык программирования Пакетный файл (англ. batch file) — текстовый файл в OS/2 или Windows, содержащий последовательность команд, предназначенных для исполнения командным интерпретатором. После запуска пакетного файла, программа — интерпретатор (как правило CMD.EXE) читает его строка за строкой и последовательно исполняет команды. Пакетный файл — аналог shell script в Unix-подобных операционных системах.
Пакетные файлы полезны для автоматического запуска приложений. Основная область применения — автоматизация наиболее рутинных операций, что регулярно приходится совершать пользователю компьютера. Примерами таких операций могут служить — обработка текстовых файлов; копирование, перемещение, переименование, удаление файлов; работа с папками; архивация; создание резервных копий баз данных и т. п. Пакетные файлы поддерживают операторы goto (а в системах семейства Windows NT и расширенный оператор for), что позволяет обрабатывать результаты выполнения предыдущих команд или приложений и в зависимости от этого выполнять дальше тот или иной блок команд (как правило, в случае удачного завершения приложение возвращает 0 в переменной errorlevel; в случае неудачного — 1 или большее значение).
Пакетные файлы в
Пакетные файлы могут содержать как внутренние команды, обрабатываемые непосредственно COMMAND.COM или CMD.EXE, так и обращения к внешним утилитам, существующим в виде отдельных программ (.EXE файлов). Данные программы значительно расширяют возможности пакетных файлов.
Содержание
- 1 История
- 2 Использование в вирусописательстве
- 3 Пример
- 4 См. также
- 5 Ссылки
История
Программирование пакетных файлов появилось в MS-DOS и Windows с самого зарождения этих операционных систем. Командные интерпретаторы этих систем предлагают два режима работы: интерактивный режим (когда пользователь непосредственно вводит команды в командной строке и немедленно их исполняет) и пакетный режим (когда пользователь запускает предварительно записанную последовательность команд). Концепция обоих режимов была почерпнута из различных Unix—оболочек, равно как и из других текстовых интерфейсов командной строки начала 1980-х годов, таких как CP/M.
Коммандный интерпретатор в MS-DOS имеет название COMMAND.COM. Эволюция этой ветви пакетного программирования прошла через различные версии MS-DOS к Windows 95, Windows 98 и, наконец, к Windows Me. Наиболее известным пакетным файлом в этих системах является
Новые версии Windows — Windows 2000, Windows XP и Windows Vista основаны не на MS-DOS, а на Windows NT. NT-подобные системы включают интерпретатор
Существуют различные другие командные интерпретаторы, разработанные не компанией
Также имеются различные компиляторы пакетных файлов, превращающие пакетные файлы в исполняемые программы.
Использование в вирусописательстве
Пакетные файлы, как и другие языки программирования, также используются для написания вирусов, хотя как правило приходится применять нетривиальные трюки для обхода ограниченности языков пакетных файлов. Однако задачу написания вирусов облегчает то, что в пакетных файлах доступен весь функционал утилит командной строки, представленных в операционной системе.
Пример
Пример простого пакетного файла:
rem echo off отключает режим отображения команд на экране. @echo off rem echo. печатает пустую строку. echo. echo Здравствуй, мир! Нажмите любую клавишу для запуска программы Program.exe! pause > nul rem Запуск программы с аргументом, переданным при запуске пакетного файла Program.exe %1 rem Обработка возможной ошибки if errorlevel 1 goto error echo. echo Программа завершила свою работу! goto end :error echo. echo Произошла ошибка при работе программы :end
См. также
- INI
Ссылки
- Уроки bat-аники. Статья для начинающих
- Помощь в написании пакетных файлов
- Руководство по созданию и использованию пакетных файлов под Windows 98 и выше
- Ряд статей об использовании пакетных и командных файлов с наглядными примерами
- Несколько полезных примеров использования командных и пакетных файлов
- Советы и рекомендации по использованию файлов пакетной обработки с примерами
- Ускоренное выключение компьютера с помощью пакетного файла
- Описание команды at (запуска программ и пакетных файлов по расписанию)
Wikimedia Foundation.
2010.
Полезное
Смотреть что такое «Пакетные файлы» в других словарях:
-
Пакетный файл — BAT Расширение .bat, .cmd (в ОС семейства Windows NT) Тип формата Скриптовый язык программирования Пакетный файл (англ. batch file) текстовый файл в MS DOS, OS/2 или Windows, содержащий последовательность команд, предназначенных для… … Википедия
-
Командный файл — BAT Расширение файла: .bat, .cmd (только Windows NT) Тип формата: Скриптовый язык программирования Пакетный файл (англ. batch file) текстовый файл в OS/2 или Windows, содержащий последовательность команд, предназначенных для исполнения командным … Википедия
-
AUTOEXEC.BAT — (от англ. automatic execution автоматическое исполнение и англ. batch пакет, группа) системный пакетный файл (файл, содержащий последовательность команд на языке интерпретатора командной строки поставляемого в… … Википедия
-
WINSTART.BAT — AUTOEXEC.BAT (от англ. automatic execution русск. автоматическое исполнение и англ. batch русск. пакет, группа) системный пакетный файл (файл, содержащий последовательность команд на языке интерпретатора командной строки поставляемого в… … Википедия
-
Winstart.bat — AUTOEXEC.BAT (от англ. automatic execution русск. автоматическое исполнение и англ. batch русск. пакет, группа) системный пакетный файл (файл, содержащий последовательность команд на языке интерпретатора командной строки поставляемого в… … Википедия
-
WinAsm Studio — WinAsm Studio … Википедия
-
WinAsm — Studio Снимок экрана WinAsm Studio Тип Интегрированные среды разработки Разработчик Antonis Kyprianou Написана на Ассемблер … Википедия
-
Компьютерный вирус — Начало исходного кода примитивного вируса для MS DOS на языке ассемблера … Википедия
-
Wintermute Engine — Тип Игровой движок Разработчик Dead:Code Software Операционная система Windows Последняя версия … Википедия
-
Интерфейс командной строки — Сюда перенаправляется запрос «Интерпретатор командной строки». На эту тему нужна отдельная статья … Википедия