Comment appeler un fichier de commandes qui est d'un niveau supérieur à partir du répertoire courant?
Je suis en utilisant un fichier de commandes dans folder1/folder2/file.bat
Il y a un fichier de commandes dans le dossier parent folder1
, que je veux ouvrir par file.bat
J'ai essayé d'utiliser:
start ..\..\code.bat
Mais cela entraîne un message d'erreur, car le fichier ne pouvait pas être trouvé.
Des idées?
OriginalL'auteur Jason Moore | 2014-07-13
Vous devez vous connecter pour publier un commentaire.
Vous pourriez simplement:
Et début de code.chauve-souris à partir de son propre répertoire
OriginalL'auteur Monacraft
Je veux expliquer mieux ce que doit être utilisée avec un exemple que les réponses postées jusqu'à présent, le travail seulement avec le répertoire de travail courant étant le répertoire contenant le fichier de commandes
file.bat
.Une structure de répertoire est comme suit:
Le répertoire de travail actuel est C:\Temp sur l'exécution de
Example.bat
soit avecou avec
Le fichier de commandes
Parent.bat
contient par exemple:Le fichier de commandes
Example.bat
contient déjà:Vraiment de solutions de travail dans ce scénario avec le répertoire de travail actuel étant un autre répertoire que le répertoire contenant
Example.bat
sont comme suit.Continuer le traitement par lot avec Parent.chauve-souris
%0
références argument 0 sur l'exécution du fichier de commandes qui est toujours le nom du fichier de commandes comme spécifiée dans le processus parent sur de commencer le fichier de commandes.Mais je voulais est le lecteur et le chemin d'accès du fichier de commandes sans les guillemets. Par conséquent, l'expression
%~dp0
est utilisée pour obtenir C:\Temp\Folder 1\2\ de l'argument 0.Sur ce chemin, la chaîne ..\Parent.chauve-souris est ajouté, et, de plus, le nouveau nom de fichier
C:\Temp\Folder 1\2\..\Parent.chauve-souris est entre guillemets parce que des espaces.
Il n'y a pas de retour
Example.bat
après le traitement deParent.bat
fini.Appel Parent.chauve-souris comme une sous-routine
Commande appel résultats dans l'exécution du fichier batch
Parent.bat
dans le même processus de commande (fenêtre de la console) avec l'arrêt de l'exécution deExample.bat
jusqu'àParent.bat
fini.L'exécution du traitement par lots continue sur la ligne suivante dans
Example.bat
après le traitement deParent.bat
fini.Exception:
Parent.bat
contient de commandeexit
sans passer/B
car cela entraîne un effet immédiat sur la sortie de la interpréteur de ligne de commandecmd.exe
traitementExample.bat
etParent.bat
.Exécuter
call /?
ouhelp call
dans une fenêtre d'invite de commande pour l'aide sur la commande appel.Commencer Parent.chauve-souris comme processus parallèle
Commande commencer sans aucun paramètre, à l'exception de l'option de titre des résultats de l'exécution du fichier batch
Parent.bat
par une commande distincte du processus dans une autre fenêtre de la console sans l'arrêt de l'exécution deExample.bat
.Donc à la fois des fichiers batch exécuté en même temps (plus ou moins).
Remarque:
Commande commencer interprète première chaîne entre guillemets comme titre. Par conséquent, il est nécessaire de définir explicitement un titre en double guillemets lorsque le fichier de commandes ou de l'application à démarrer, ou tout argument de la route des lots de fichiers /d'application doivent être précisées dans des guillemets parce que de 1 ou plusieurs espaces.
Exécuter
start /?
ouhelp start
dans une fenêtre d'invite de commande pour l'aide sur la commande commencer.Appel Parent.chauve-souris comme un processus distinct,
Commande commencer avec le paramètre optionnel
/wait
résultats dans l'exécution de la route des lots de fichiers /d'application en tant que processus séparé (en plus de la fenêtre de console pour un fichier de commandes ou de l'application de la console), mais l'arrêt de l'exécution de l'actuel fichier de commandes jusqu'à ce que le processus a commencé (Windows application ou un fichier de commandes /de la console de l'application exécutée dans une nouvelle fenêtre de console) se termine.%~dp0
est la réponse, et fonctionne très bien. Merci.OriginalL'auteur Mofi
..\
est utilisé pour remonter d'un niveau. votre cas nécessite deux niveauxEssayez:
start ..\..\code.bat
au lieu destart ../../code.bat
Dans son cas, il a seulement besoin d'un niveau, ou qu'est ce qu'il a demandé, si vous avez lu son post, c'est exactement ce qu'il a essayé. Pour les fichiers bat, vous devez utiliser l'appel au lieu de démarrer (au moins si vous voulez continuer à l'origine, le fichier bat après la seconde finitions): Donc, la façon correcte serait: appel ..\code.chauve-souris
OriginalL'auteur DoubleM
essayez d'utiliser ceci:
OriginalL'auteur Jarek606