Les Fichiers Batch troisième “Si NON” déclaration qui n'est pas atteint

Bonjour stackoverflow de la communauté,

Je suis en train d'écrire un fichier de commandes pour faire certaines automatique de la maintenance informatique et l'ont inclus plusieurs applications antivirus. Pour une raison quelconque, le troisième "si ce n'est" l'énoncé n'est jamais atteint.

:AV
REM MSE
if not '%MSE%'=='' (
Echo Scanning for viruses using Microsoft Security Essentials.
Echo.
%MSE% -Scan -ScanType 1
Echo.
GOTO Defrag
)

REM AVG
if not '%AVG%'=='' (
Echo Scanning for viruses using AVG.
Echo.
%AVG% /COMP /QT /TRASH
Echo.
GOTO Defrag
)

REM NOD32
if not '%NOD32%'==''(
Echo Scanning for viruses using NOD32.
Echo.
if '%NOD32%'=='' GOTO NOD32NotFound
%NOD32% /aind /auto /log-file="%userprofile%\Desktop\Scan_Results.txt"
Echo.
GOTO Defrag
)

REM If all else fails...
GOTO AVNotFound

Actuellement, il y a trois blocs de codes, un pour chaque programme antivirus. Chaque bloc de code est exécuté uniquement lorsque la variable %MOY% %MSE% ou %NOD32% n'est pas vide, ce qui signifie qu'ils pointent vers un fichier valide. Je assigner les variables en utilisant le code:

if exist "%programfiles(x86)%\AVG\AVG2012\avgscana.exe" set AVG="%programfiles(x86)%\AVG\AVG2012\avgscana.exe"

Tous les trois blocs de code fonctionne parfaitement, rien n'est de mal avec le codage. Le problème, c'est que quel que soit le troisième bloc de l'est, il n'est jamais exécuté. Ainsi, dans l'exemple actuel, les blocs de code dans l'ordre de la MSE, AVG, et NOD32. NOD32 est un bloc de code ne s'exécute pas parce que c'est le troisième bloc. Inversement, si j'ai couper et coller les blocs dans un autre ordre avec AVG bloc de code étant le troisième bloc, il ne serait pas exécuter.

Des idées?

Des suggestions?

Édité pour plus de précisions.

OriginalL'auteur lbrtdy | 2011-11-25