J'ai un fichier .bat auquel je peux passer des paramètres. brièvement, il exécute un SQL pour charger la table1 sur l'environnement DEV. Maintenant, je veux que cela charger plusieurs tables du jour au lendemain. Donc, j'ai mis en place un maître .bat qui va quelque chose comme p> si je soumets master_load.bat à partir de cmd, il exécute la charge de la table1 mais ne marche pas à la charge de la table2 . Ce sont les deux dernières lignes du wrapper.bat p>
4 Réponses :
Vous devez utiliser la commande de démarrage afin de résoudre ce problème. L'appel rend le processus actuel exécuter les commandes. Vous pouvez en apprendre davantage sur Démarrer ici. La mise en œuvre de base doit être la suivante:
"START program-name arg1 arg2"`
Y a-t-il un problème dans l'exécution de Call Loader_table_wrapper.bat Table1 Dev? Quel est le résultat lorsque vous écho entre les appels? P>
Votre Vous pouvez corriger le problème. simplement en ajoutant l'option / B de la commande de sortie p> i, je n'utilise presque jamais la sortie sans / b dans un fichier de commandes (bien qu'il y ait des moments où / b n'est pas recherché) . p> mais une autre alternative consiste à exécuter les scripts appelés via cmd au lieu de l'appel. p> Il existe un certain nombre de différences entre les méthodes p> appel avec sortie / b strong> p> cmd / c strong> p> Je ne recommanderais jamais d'utiliser CMD / C sur appel, à moins que les fichiers par lots appelés n'ont quitté l'option / B et vous ne pouvez pas modifier le fichier de commandes pour ajouter l'option / B. P> P> > sortie% error_status% code> commande dans load_table_wrapper.bat est terminant votre session de lot, donc votre maître_load.bat n'a jamais eu la possibilité de reprendre avec l'appel suivant.
essayer de donner une commande de pause, comme ceci: p>
appel load_table_wrapper.bat table1 dev
PAUSE
Call Load_Table_wrapper.bat Table2 Dev
PAUSE
Call Loader_table_wrapper.bat Table3 dev Code> P>