Тема: CMD/BAT: Сравнение строк
Задача:
6. Создать командный файл compare.cmd, сравнивающий две строки, передаваемые ему в качестве параметров. Командный файл должен возвращать следующие коды:
◦ 0 – строки одинаковы;
◦ 1 – строки разные;
◦ 2 – не хватает параметров (параметров меньше двух);
◦ 3 – «лишние» параметры (параметров больше двух).
Никаких сообщений командный файл выдавать не должен. Вывод на экран отключен.
Создать командный файл для запуска compare.cmd c ретрансляцией параметров. В зависимости от кода завершения, на экран должны выводиться сообщения о результате сравнения.
7. Модифицировать командный файл, созданный при выполнении предыдущего пункта задания таким образом, чтобы в файл log.txt при каждом сравнении добавлялась следующая информация: дата, время, сравниваемые строки, результат сравнения. В случае неверного числа параметров вместо сравниваемых строк и результата сравнения должно записываться сообщение об ошибке.
Что сделал я:
file.cmd, запускающий compare.cmd:
date /t>log.txt
time /t>>log.txt
call compare.cmd asd qwe asd
if errorlevel 3 goto :many
if errorlevel 2 goto :little
if errorlevel 1 goto :nesuper
if errorlevel 0 goto :super
:many
echo "Слишком много параметров">>log.txt
exit
:little
echo "Не хватает данных">>log.txt
exit
:nesuper
echo "Строки неравны">>log.txt
exit
:super
echo "Строки равны">>log.txt
и сам compare.cmd:
@echo off
if [not] -%3==- goto :3
if -%1==- goto :2
if -%2==- goto :2
if %1==%2 goto :0
if [not] %1==%2 goto :1
:3 exit /b 3
:2 exit /b 2
:0 exit /b 0
:1 exit /b 1
При запуске file.cmd в log.txt выводится только дата и время. Что я сделал не так?