Un fichier de commandes Windows ( called.bat
ou called.cmd
) peut être appelé à partir d'un autre fichier de commandes ( caller.bat
ou caller.cmd
) ou d'une invite cmd.exe interactive de plusieurs manières:
- appel direct:
called.bat
- en utilisant la commande d'appel:
call called.bat
- en utilisant la commande cmd:
cmd /c called.bat
- en utilisant la commande de démarrage:
start called.bat
J'ai du mal à différencier leur utilisation prévue en fonction de leur texte d'aide: quand utiliser lequel? par exemple, pourquoi je pourrais utiliser la commande «appel» au lieu d'un appel direct. Qu'est ce qui est different?
Je suis intéressé par un rapport de synthèse qui analyse les 4 possibilités (et d'autres le cas échéant) à partir de différents points de vue: les cas d'utilisation recommandés pour lesquels ils sont conçus pour s'adapter, le processus de génération, le contexte d'exécution, l'environnement, le traitement du code de retour.
Remarque: j'utilise Windows XP SP3.
la source
start "" [options] command
Une chose n'est pas claire dans les commentaires ici: lorsque vous appelez un fichier de commandes à partir d'un autre en utilisant uniquement son nom (cas n ° 1 dans la question d'origine), l'exécution s'arrête à partir du fichier de commandes appelant. Par exemple, dans ces lignes:
La ligne 'echo Hello' (et tout ce qui la suit) ne sera pas appelée. Si vous utilisez le mot clé 'call', l'exécution reprend après l'appel. Donc dans ce cas:
La ligne 'echo Hello' sera appelée.
De plus, toutes les variables définies dans le fichier called.bat seront également transmises au processus appelant.
Imaginez un fichier 'called.bat' qui avait cette ligne:
Ensuite,% MYVAR% serait disponible pour le fichier batch appelant s'il utilisait:
Mais, il n'utiliserait pas
la source