整理.BAT文件

时间:2011-07-13 11:36:16

标签: sql-server-2008 batch-file osql

我的下面的脚本运行正常,但基本上我希望.bat在输入赌场名称和用户名之前询问用户是否需要赌场列表,然后,如果他们选择l(小写字母EL)列表,它产生赌场列表。目前正在'错误转换退出值'。谁能告诉我这个代码?

@echo off
osql -STEMP7 -E -dAAMS888 -w256 -qEXIT("SET NOCOUNT ON SELECT casino_desc from casino") -b

set /p var1= Enter Casino Name : 
set /p var2= Enter Screen name : 

osql -STEMP7 -E -dAAMS888 -w256 -QEXIT("DECLARE @r int EXEC @r = usp_AddToObservationtbl '%var1%','%var2%' SELECT @r") -b -oc:\bat\observation.log
exit errorlevel

1 个答案:

答案 0 :(得分:1)

通过更改行

来修复退出值转换错误
exit errorlevel

exit %errorlevel%

您想要返回ERRORLEVEL变量的值,因此您需要将该名称括在% s中。

至于你的第一个问题,关于要求用户确认是否要显示赌场列表,你可以尝试这样修改原始脚本(添加的行以粗体突出显示):

@ECHO OFF

SET /P "NeedsList= Do you want to display the list? "

IF /I NOT [%NeedsList%] == [L] GOTO :cont
osql -STEMP7 -E -dAAMS888 -w256 -qEXIT("SET NOCOUNT ON SELECT casino_desc from casino") -b

:cont
set /p var1= Enter Casino Name : 
set /p var2= Enter Screen name : 

osql -STEMP7 -E -dAAMS888 -w256 -QEXIT("DECLARE @r int EXEC @r = usp_AddToObservationtbl '%var1%','%var2%' SELECT @r") -b -oc:\bat\observation.log
exit %errorlevel%