Запуск в Windows PowerShell внешних исполняемых файлов

Введение в Windows PowerShellВ предыдущих статьях мы говорили о командлетах, функциях и сценариях в Windows PowerShell. Сегодня поговорим о последнем типе команд — внешних исполняемых файлах. Речь идет о командных файлах классической командной строки Windows (cmd.exe) и сценариях на языке VBScript.

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

Windows PowerShell позволяет запускать файлы .bat и .cmd. Для запуска необходимо указать путь к файлу. Например

C:\primer.bat

При этом PowerShell создаст процесс cmd.exe, который и выполнит этот запрос. Тоже самое относится и к файлам .vbs. Windows PowerShell позволяет не только запускать подобные файлы, но и внедрять код VBScript в сценарии PowerShell. Если смотреть шире, то, на самом деле, внедрять можно код любого языка, поддерживающего ActiveX Scripting. При этом правда стоит учитывать, что эти языки весьма сильно отличаются по синтаксису от языка PowerShell.

Если же Вы хотите запустить в Windows PowerShell команду классической командной строки, то для этого достаточно использовать cmd /c.

Например, команда

cmd /c dir /b

выдаст Вам список файлов текущего каталога в виде одних только имен, без дополнительных атрибутов. Это команда cmd.exe, которую мы запустили в консоли PowerShell.

Microsoft постаралась сделать синтаксисы классической командной строки и Windows PowerShell максимально схожими. Поэтому многие знакомые нам команды работают и в PowerShell без дополнительных манипуляций. Полной совместимости достичь, однако, было невозможно из-за разного принципа реализации работы cmd.exe и PowerShell. В PowerShell были введены командлеты, объединяемые в конвейеры. В классической командной строке Windows был список команд, которые очень гибко настраивались большим количеством дополнительных параметров.

Итак, как видим, Windows PowerShell обеспечивает механизм обратной совместимости с командами и сценариями, написанными до его появления. При этом новые сценарии было бы логичнее писать уже на PowerShell. В идеале, изучив синтаксис PowerShell, системный администратор может переписать и старые сценарии.

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

Ваш адрес email не будет опубликован.