2011-04-08 50 views
5

是否有可能在批处理脚本中有条件语句?批处理文件中的条件语句

例如:

我有两个服务器,S1和S2.When批处理文件被部署在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 

因此,当文件部署,在需要的路径生成报告。但是这不起作用。

回答

11

你比较反对S1字符串计算机名与错误的if-else语法

这应该工作

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

非常感谢杰布... :) – Iswarya 2011-04-08 12:23:32