Seule ligne avec plusieurs commandes à l'aide de Windows fichier de commandes
J'essaie de comprendre comment plusieurs commandes en une seule ligne de commande dans un fichier de commandes de travail.
dir & md folder1 & rename folder1 mainfolder
Et d'autres cas similaires avec les commandes, mais &
substitué avec &&
.
dir && md folder1 && rename folder1 mainfolder
1. Quelle est la différence entre ces deux cas?
Autre chose que je veux vous demander:
One-liner batch.bat
:
dir & md folder1 & rename folder1 mainfolder
Multi-liner batch.bat
:
dir
md folder1
rename folder1 mainfolder
2. Ce one-liner et multi-liner égalité en termes de fichier batch procédure?
Et une chose que je voudrais savoir:
3. Si je l'appelle d'autres fichiers batch à partir d'un principal.chauve-souris, sont-ils fonctionner indépendamment et simultanément? Principal fichier de commandes ne pas attendre la fin des procédures dans d'autres fichiers batch? Comment faire?
Sûr que je vais! Merci, tripleee.
OriginalL'auteur Quanti Monati | 2014-08-16
Vous devez vous connecter pour publier un commentaire.
&
entre deux commandes simplement les résultats dans l'exécution de ces deux commandes indépendantes sur le résultat de la première commande. La commande à droite de&
est exécuté après la commande gauche de&
fini indépendant sur le succès ou d'erreur de la commande précédente, c'est à dire indépendant sur exit /valeur de retour de la commande précédente.&&
résultats dans un conditionnelle de l'exécution de la deuxième commande. La deuxième commande est exécutée que si la première commande a réussi ce qui signifie terminé avec le code de retour 0.Pour une autre explication voir Exécution Conditionnelle.
est donc égale
D'une multiligne de remplacement pour
serait
if not errorlevel 1
la commande avant de ne pas résilier avec un code de sortie plus 0. Comme les commandesdir
etmd
jamais sortie avec une valeur négative, juste avec 0 ou plus (comme presque toutes les commandes et les applications de console) et la valeur 0 est le code de sortie de la réussite, c'est une bonne méthode pour tester sur la réussite de l'exécution dedir
etmd
. Voir l'article du support Microsoft Essais pour un Niveau d'Erreur Spécifique dans des Fichiers Batch.Autres Débordement de Pile sujets sur errorlevel:
Les soins doivent être prises sur le mélange inconditionnel de l'opérateur
&
avec les opérateurs conditionnels comme&&
et||
en raison de l'ordre d'exécution n'est pas nécessairement l'ordre des commandes sur la ligne de commande.Exemple:
Cette ligne de commande est exécutée comme:
La ECHO commande est toujours exécuté indépendant sur le résultat de l'exécution de la première DIR alors que la deuxième DIR n'est exécutée que si la première DIR échoue comme sur Windows XP ou le dossier de profil utilisateur n'est pas sur le lecteur C: ou pas dans un dossier
Users
à tous.Il est nécessaire d'utiliser
(
et)
sur l'exécution de ECHO seulement si le premier DIR échoue après la deuxième DIR indépendant sur le résultat de la deuxième DIR.Cette ligne de commande est exécutée comme:
Pour la réponse sur la troisième question, voir ma réponse sur Comment appeler un fichier de commandes dans le dossier parent de l'actuel fichier batch? où j'ai expliqué les différences sur l'exécution d'un fichier de commandes avec la commande
call
ou avecstart
ou avec aucun de ces deux commandes à partir d'un fichier de commandes.OriginalL'auteur Mofi