в соответствии с указанием выбора c строка должна запускаться в cmd.exe с использованием командного файла - PullRequest
0 голосов
/ 30 марта 2020

Я хотел предоставить этот выбор

@echo off
echo what operation you wanted to perform
echo a:creating a new web server?
echo or
echo b:Edit root url for already existed web server
set /P var = "What is your option a or b"

if "%var%" == "A" (
    cd C:\Program Files\Infor\Mongoose\Tools
    infordbcl.exe addwebserver -name:sample -product:Mongoose -rooturl:https://uscovwmongoose3
)
if "%var%" == "B" (
    infordbcl.exe addwebserver -name:sample -product:Mongoose -rooturl:https://mongoose.com - 
    mode:edit
 )

Я запустил этот командный файл с помощью powershell. После ввода выбора A или B команды, указанные в, если блоки не выполняются в cmd.exe
Есть ли в них какие-либо синтаксические ошибки, пожалуйста, сообщите мне

1 Ответ

1 голос
/ 31 марта 2020

Вот как здесь можно использовать Choice:

@echo off

Choice /N /C ce /M "  <?> (C)reate new Server   <?> (E)dit root url for existing web server"
If Errorlevel 2 (
    REM If the  Change directory command is also meant to execute in this block, remove and place CD command prior to choice command.
    infordbcl.exe addwebserver -name:sample -product:Mongoose -rooturl:https://mongoose.com -mode:edit
    ) Else (
    REM confirm if lack of url extension is correct
    cd "C:\Program Files\Infor\Mongoose\Tools"
    infordbcl.exe addwebserver -name:sample -product:Mongoose -rooturl:https://uscovwmongoose3
)

Объяснение:

/N скрывает приглашение по умолчанию (все ключи определены с использованием / C или по умолчанию Y / N, если / C не используется)

/C позволяет определять ключи в диапазоне 0-9, а AZ

  • уровень ошибки для каждой клавиши устанавливается в соответствии с occurance после того, как ключ / C
  • для /C ce, c вернет Errorlevel 1, e вернет errorlevel 2 и т. д.

/M "string" разрешает пользовательскую строку быть определенным, чтобы объяснить выбор. Заключите строку в двойные кавычки.

Когда вы проверяете возвращаемый уровень ошибки

Вы должны проверять от наивысшего к наименьшему.

Это потому, что команда intepreter читает If Errorlevel n как If Errorlevel n or higher

Для получения дополнительной информации и примеров использования введите choice /? в cmd.exe

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...