Поговорим о возможности использовать в 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 файлах можно найти здесь.
Хотел написать комментарий на статью: 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 и поставил. Видимо, неправильно. А как поставить — даже не знаю теперь.
Спасибо!
Руслан, из вашего комментария непонятно на какую OS вы устанавливали:)
Если Ubuntu, то apt install ghostscript
RHEL yum install ghostscript
FreeBSD pkg install ghostscript (собственно на этой OS был опробован данный метод и успешно используется для подготовки обязательного экземпляра)
Если Windows, то проще в поставить linux/freebsd с помощью виртуализации.