Условные операторы в пакетных файлах - PullRequest
9 голосов
/ 08 апреля 2011

Возможно ли иметь условные операторы в пакетных сценариях?

Например:

У меня есть два сервера, S1 и S2. Когда пакетный файл развернут в S1, тогда вывод долженгенерироваться в местоположении L1.Аналогично, если командный файл развернут в S2, то выходные данные должны быть сгенерированы в расположении L2.

Мой сценарий:

set ComputerName=S1
set RepServer=%ComputerName%
set DBServer=%ComputerName%
set ReportPath="/DEV/Clearviewbilling"
set SharedPath=\\scottvdr1\ClearviewBilling\DEV-TEST
set UserId=-E
set fn=Create_Log.txt

if exist %fn% del %fn%
@echo on

@rem Reports
rs -i "%CD%"\Reports\Create_Sub.rss -s http://%RepServer%/reportserver -v Path=%SharedPath% -v rootpath=%ReportPath% -v DBServer=%DBServer% -t  >>  %fn% 2>&1

Но я хочу, чтобы сценарий был:

set ComputerName=S1
set RepServer=%ComputerName%
set DBServer=%ComputerName%

If ComputerName=S1
Set SharedPath=//blah/blah
else
Set sharedPath=//some/path

set ReportPath="/DEV/Clearviewbilling"
set UserId=-E
set fn=Create_Log.txt

if exist %fn% del %fn%
@echo on

@rem Reports
rs -i "%CD%"\Reports\Create_Sub.rss -s http://%RepServer%/reportserver -v Path=%SharedPath% -v rootpath=%ReportPath% -v DBServer=%DBServer% -t  >>  %fn% 2>&1   

Следовательно, при развертывании файла отчеты создаются по требуемому пути.Но это не работает.

1 Ответ

17 голосов
/ 08 апреля 2011

Вы сравниваете строку ComputerName с S1 с неверным синтаксисом if-else

Это должно работать

if "%ComputerName%"=="S1" (
    Set "SharedPath=//blah/blah"
) else (
    Set "sharedPath=//some/path"
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...