2011-07-13 4 views
0

J'ai le script ci-dessous qui fonctionne correctement, mais fondamentalement, je veux que le .bat demande à l'utilisateur s'il veut une liste de casinos avant d'entrer le nom et le nom d'utilisateur du casino, puis, s'ils sélectionnent l (lettre minuscule EL) pour la liste, il produit la liste des casinos. En cours d'obtention 'erreur lors de la conversion de la valeur de sortie'. Quelqu'un peut-il me dire le code pour cela?ranger .BAT fichier

@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 

Répondre

1

L'erreur valeur de sortie de conversion est fixé en changeant la ligne

exit errorlevel 

à

exit %errorlevel% 

Vous voulez retourner la valeur de la variable ERRORLEVEL, de sorte que vous devez joindre la nom dans % s.

Pour ce qui est de votre première question, à demander à l'utilisateur de confirmer si elles veulent afficher la liste des casinos, vous pouvez essayer quelque chose comme cette modification de votre script original (lignes ajoutées sont en gras):

@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% 
+0

je fixe à l'aide en supprimant certains des paramètres @echo off SET/P « NeedsList = voulez-vous afficher une liste de casino? (appuyez sur l pour une liste ou toute autre touche) » SI/JE nE [% NeedsList%] == [L] GOTO: cont osql -STEMP7 -E -dAAMS888 -w256 -Q "SET NOCOUNT sur SELECT casino_desc du casino" -b : suite set/p var1 = Entrez le nom Casino: set/p var2 = Entrez le nom de l'écran: osql -E -STEMP7 -dAAMS888 -w256 -Q « DECLARE @r int EXEC @r = usp_AddToObservationtbl « % var1 % ','% var2% 'SELECT @r "-b -oc: \ bat \ observation.log exit% errorlevel% –

+0

Désolé de ne pas pouvoir répondre à ma propre question, donc je n'ai pas pu l'éditer correctement :( –

+0

Je peux voyez que vous avez fait quelques modifications, mais il me semble que les parties que j'ai spécifiquement abordées dans ma réponse sont restées fondamentalement intactes dans votre script final. Si tel est bien le cas, vous pourriez considérer [accepter] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) cette réponse de façon formelle, et je vous recommande également de revenez en arrière et passez en revue les réponses à vos autres questions afin d'en accepter certaines qui ont fonctionné pour vous, le cas échéant. –