CMD: конструкция switch/case как быть?

cmd batch file run

Поговорим о возможности использовать в batch файлах оператора switch/case.

Потребовалось написать простой CMD скрипт для запуска трех разных команд.
Вспомнил про оператор switch, с помощью которого делал обработку в зависимости что в переменной на PHP.

Пример конструкции на языке PHP:

<?php
switch ($i) {
    case "apple":
        echo "i это яблоко";
        break;
    case "chocolate":
        echo "i это шоколадка";
        break;
    case "pie":
        echo "i это пирог";
        break;
}
?>

Пример case на Bash:

case $i in
     apple)
          echo $i "это яблоко"
          ;;
     chocolate)
          echo $i "это шоколадка"
          ;;
     windows)
          echo $i "это пирог"
          ;; 
     *)
          echo "Usage: $1 apple | chocolate| pie"
          ;;
esac

Для batch файлов такой конструкции нет, но мы сможем сделать два варианта с помощью конструкции IF и GoTO.

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

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

@echo off
set N=%~1
  goto :switch-case-N-%N% 2>nul || (
    echo "Usage: %~0 one | two | three"
  )
  :switch-case-N-one
    echo One
    exit /b
  :switch-case-N-two
    echo Two
    exit /b
  :switch-case-N-three
    echo Three
    exit /b

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

@echo off
set N=%~1
IF "%N%"=="one" (
  echo One
) ELSE IF "%N%"=="two" (
  echo Two
) ELSE IF "%N%"=="three" (
  echo Three
) ELSE (
  echo "Usage: %~0 one | two | three"

На этом все.

Больше о batch файлах можно найти здесь.

Рейтинг
( 2 оценки, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
Комментарии: 2
  1. Ruslan

    Хотел написать комментарий на статью: https://marvins.ru/administrirovanie/pdf-a-sozdaem-arxivnyj-fajl-bez-ispolzovaniya-adobe-acrobat-pro.html

    Но там пишет «вы ввели неправильное значение reCaptcha». А здесь комментарии проходят. Комментарий на ту статью:

    Git-bash выводит ошибку: Ghostscript is not installed or it’s not in the path — что-то я делаю не так… Вроде бы скачал gs и поставил. Видимо, неправильно. А как поставить — даже не знаю теперь.

    Спасибо!

    1. Vladimir (автор)

      Руслан, из вашего комментария непонятно на какую OS вы устанавливали:)
      Если Ubuntu, то apt install ghostscript
      RHEL yum install ghostscript
      FreeBSD pkg install ghostscript (собственно на этой OS был опробован данный метод и успешно используется для подготовки обязательного экземпляра)
      Если Windows, то проще в поставить linux/freebsd с помощью виртуализации.

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

:) :D :( :o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.