Вам нужно освежить свой синтаксис пакета.Справка доступна практически для каждой команды, набрав либо HELP command
, либо command /?
в командной строке.Например, HELP IF
предоставит справку по команде IF.Конечно, документация часто неполная и / или запутанная, но это только начало.
У вас много проблем с вашим синтаксисом, как написано.Одним из наиболее очевидных является то, что ЕСЛИ не поддерживает такие операторы, как AND, OR, XOR и т. Д.
Вы можете достичь логики, которую вы искали, с помощью следующей
@echo off
Set /P _environment = Please Enter Environment [d] for Development or [a] for Acceptance:
if "%_environment%" neq "a" if "%_environment%" neq "d" goto :end
:sub_write_files
echo xcopy script_temp\* \\CHU-%_environment%101\CHU\scripts /D /E /C /R /I /K /Y /S
:end
echo %_environment% Done
Есть многопотенциальных улучшений.Например, вы можете добавить опцию /I
в оба оператора IF, чтобы регистр не имел значения.Или, возможно, вы захотите вернуться назад и повторить попытку вместо завершения, если введено неверное значение.