2011-04-08 20 views
5

¿Es posible tener sentencias condicionales en scripts por lotes?Declaraciones condicionales en archivos por lotes

Por ejemplo:

Tengo dos servidores, S1 y S2.When el archivo por lotes se despliega en S1, la salida debe ser generado en el lugar L1. Del mismo modo, si el archivo por lotes se implementa en S2, la salida debe generarse en la ubicación L2.

Mi script:

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 

pero quiero que el script que debe ser:

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 

De ahí que cuando se despliega el archivo, los informes se generan en la ruta requerida. Pero esto no está funcionando.

Respuesta

11

se compara el ComputerName cadena contra S1 con el mal de sintaxis si-else

Esto debería funcionar

if "%ComputerName%"=="S1" (
    Set "SharedPath=//blah/blah" 
) else (
    Set "sharedPath=//some/path" 
) 
+0

Muchas gracias Jeb ... :) – Iswarya

Cuestiones relacionadas