2010-04-24 7 views
1
ECHO @ECHO OFF ^& (IF EXIST "%%~dp0%~n1.swf" (DEL "%%~dp0%~n1.swf")) ^& %mxmlcPath% %opts% -file-specs "%%~dp0%~nx1" ^& (IF EXIST "%%~dp0%~n1.swf" (CALL "%%~dp0%~n1.swf") ELSE (PAUSE)) > "%~dpn1.bat" 
REM Immediately execute the generated bat 
@ECHO on 
CALL "%~dpn1.bat" 

C'est vraiment un gâchis pour moi (comme ECHO @ECHO OFF, à quoi cela est-il destiné?), Quelqu'un peut-il l'élaborer?Comment puis-je comprendre le script batch 3 lignes?

Répondre

6

Première ligne génère le fichier de commandes (notez le « > » redirigeant la sortie vers le fichier à la fin de la première ligne). La troisième ligne assure que la sortie sera visible, la quatrième ligne exécute le fichier batch généré en première ligne.

Quant à ce que le lot généré faire: il semble qu'il recrée swf: d'abord le fichier swf est supprimé:

"(IF EXIST "%%~dp0%~n1.swf" (DEL "%%~dp0%~n1.swf"))" 

il est créé en utilisant le programme défini dans la variable d'environnement mxmlcPath:

%mxmlcPath% %opts% -file-specs "%%~dp0%~nx1" 

si elle est créée avec succès, il fonctionne en défaut lecteur swf:

(IF EXIST "%%~dp0%~n1.swf" (CALL "%%~dp0%~n1.swf") 

dans d'autres cas, il attend l'entrée d'utilisateur (si vous serez en mesure de lire tous les messages d'erreur, etc.):

ELSE (PAUSE) 

Explication de la syntaxe de tous les « % ~ dp0 », etc. est disponible en documentation de quelques commandes de fenêtres, par exemple:

call /? 
+0

Qu'en est-il de 'ECHO @ECHO OFF', qu'est-ce que c'est? – Gtker

+0

@Runner: echo sort le reste de la ligne. Habituellement, il transmet à l'écran, mais avec l'opérateur de redirection à la fin ('>'), il est sortie vers un fichier. '@echo off' est une commande pour ne pas afficher les commandes en cours qui s'exécutent dans un fichier batch. Alors que Chalup dit, cela crée un fichier de commandes, et la première ligne de ce fichier batch créé lira '@Echo Désactivée, puis le reste ... Je sais – JRL

+0

' @ECHO Désactivée, mais pourquoi'echo @ECHO OFF'? – Gtker

Questions connexes