У цій маленькій ноті ми розглядаємо, як виконувати кілька команд CMD або PowerShell в одному рядку. Таке завдання періодично виникає, коли команди PowerShell із зовнішніх програм, із завдань Windows, журнал сценаріїв, коли вам потрібно обійти політику сценаріїв PowerShell, або коли вам потрібно швидко перенести частину коду, щоб виконати проблеми на комп’ютері.
Виконання декількох команд на консолі CMD
У CMD оператор використовується в одному рядку для послідовного запуску команд в одному рядку &
. Наприклад:
Чиста зупинка Wuauserv & Net Start Wuauserv & wuauclt /detectnow
При необхідності, що друга команда виконується лише після успішного виконання першого, використовується формат &&
:
ipconfig /flushdns && ipconfig /reonam
Ви можете використовувати зворотну умову: друга команда буде виконана лише в тому випадку, якщо перша повернула помилку:
Чиста зупинка wuauserv6 || Чистий старт wuauserv
Запуск декількох команд PowerShell в одному рядку
У PowerShell, якщо ви використовуєте знак Ampersand для розділення команд в одному рядку, з’явиться помилка:
Амперсанд (&) персонаж заборонено. & Оператор зарезервований для подальшого використання;
Замість & для розділення команд PowerShell символ точки з комою використовується в одному рядку ( ;
):
Перезапуск -service wuauserv -verbose; Блокнот Get-Process
Ця команда Single Line PowerShell перезапустить службу Windows, а після першої команди відобразить інформацію про процес.
Популярним прикладом зменшення команд у PowerShell є конвеєри (трубопровід), які дозволяють передати результати однієї команди наступного конвеєра. PowerShell як оператор конвеєра використовує символ "|". Наприклад, приклад команди з конвеєром:
Get -Service -Name Wususerv | Зупинка
Той самий код можна записати в декількох рядках:
$ Service = get -service -name wususervice
$ serviceName = $ Service.Назва
Зупинка -Service -Name $ ServiceName
Це виявилося хорошою економією розміру коду, і код став ще простішим і читабельнішим.
Щоб запустити кілька команди PowerShell через меню «Пуск» -> Виконайте, використовуйте формат:
PowerShell -Command & "ipconfig /all; tracert yandex.RU; Пауза "Натисніть будь -яку клавішу для продовження" "
Якщо ви запускаєте ті самі команди через консоль PowerShell, використовуйте синтаксис:
PowerShell -Command ipconfig /all; Tracert Yandex.RU; Пауза "Натисніть будь -яку клавішу для продовження"
Починаючи кілька команд PowerShell через планувальник Windows, ви можете використовувати цей формат:
C: \ Windows \ System32 \ Windowspowershell \ v1.0 \ PowerShell.exe -Command get -eventLog -Logname Security; ipconfig /all; Get-Service serviceName "
У версії PowerShell Core 7.X Доступні нові оператори && та ||. Вони працюють так, як у CMD.
Ви можете перевірити версію PowerShell, завершивши $ PSVersiontable.Оператор &&
виконає команди PowerShell праворуч, якщо команда буде успішною зліва:
Напишіть-хост "Привіт!"& Write-Host" світ!Що
Оператор ||
Він використовується, коли вам потрібно виконати команду, якщо перша команда повернула помилку:
Отримання сервісного імені || Напишіть-господар "відсутня послуга"