Windows Scripting: Si instruction, la comparaison de deux variables ne fonctionne pas


-2

J'ai cette partie du code qui fonctionne bizarre:

if !NoOfLines!==!trailer! (
   echo Count of records in DFUView interface verified ok. >> %LOG_DIR%\%SCRIPT_NAME%.log 
) else ( 
       echo Count of records in DFUView interface do not match trailer . !NoOfLines! !trailer!  Hence aborting. >> %LOG_DIR%\%SCRIPT_NAME%.log
       goto Error
)  

Même si les variables NoOfLineset trailerportent la même valeur, ce que j'ai confirmé en imprimant avec echo, la Ifcommande saute à la Elsepartie qui correspond au cas où deux variables ne sont pas égales.


Qu'est-ce que Langague scripting est-ce exactement? il ne semble pas être vbs ou wscript / cscript. Aussi, ne sous-estimez jamais le danger des espaces blancs. 'chose'! = 'chose'.
Frank Thomas

Ceci est un script batch de Windows ...
Novice

J'ai essayé avec! NoOfLines! ==! trailer! au lieu de! NoOfLines! ==! trailer !, cela ne fonctionne toujours pas
Novice

2
(1) extrait de code non complet: comment sont définies les variables? (2) L'expansion différée est-elle activée? (3) Dans la elsebranche, echo "!NoOfLines!" "!trailer!": sont les mêmes?
JosefZ

@JosefZ C'est aussi ma liste de questions.
Tonny

Réponses:


2

Dans Windows Batch Scripting, les variables doivent être entourées par %not !lorsque vous n'utilisez pas d'expansion retardée *. Cette ligne de code fonctionne comme prévu:

if %NoOfLines%==%trailer% (

Plus d'informations sur la syntaxe de l' IFinstruction peuvent être obtenues à l'invite de commande en les tapant IF /?.

* Tapez Setlocal /?à l'invite de commande pour plus d'informations sur l'expansion des variables différées


1
Mauvaise réponse,! Var! est l'utilisation correcte si une expansion retardée est souhaitée
Tonny

Merci d'avoir expliqué le vote. Le PO a-t-il mentionné l'expansion retardée?
Twisty Impersonator

1
en changeant ! % résolu le problème. Le code fonctionne bien maintenant. Merci tout le monde.
Novice

@ Tonny Si l'OP indique que l'extension différée n'est pas utilisée, envisageriez-vous d'inverser votre vote négatif?
Twisty Impersonator

1
@ Twisty Done. Il ressort clairement de ses commentaires ultérieurs que l’affiche originale n’utilisait pas l’extension différée.
Tonny
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.