Exécuter plusieurs scripts Powershell séquentiellement - sur un dossier - Combiner des scripts dans un script maître
J'ai 6+ scripts à exécuter sur un dossier, ce qui est le meilleur moyen de se courir l'un après l'autre.
J'ai vu et essayé ce thread, il ne fonctionne pas malheureusement.
Comment faire pour exécuter plusieurs Scripts un par un dans un script powershell
Dans un master .fichier ps - j'ai mis des liens à la puissance des scripts shell qui doivent être exécutées dans l'ordre
Exécuter des Scripts dans l'ordre
'C:\Users\WP\Desktop\Scripts.ps1'
'C:\Users\WP\Desktop\Scripts.ps1'
'C:\Users\WP\Desktop\Scripts.ps1'
etc
Cela ne fonctionne pas non plus. Votre aide est très appréciée - j'ai cherché partout et ne semble pas possible pour résoudre ce problème.
Révision: je crois que je vais attendre, pour chaque power shell script avant la fin de l'exécution de la prochaine - comme j'ai eu des erreurs lorsque j'ai essayé de courir 3 scripts, l'un après l'autre, rien ne s'est passé lorsque les scripts ont été exécutés
Final -
Je vous remercie tous pour votre aide à garder les choses simples, c'est ce que j'ai fait
Mon dossier a les scripts ci-dessous - j'ai ensuite créé un Maître.ps1 avec le code ci-dessous à l'intérieur:
&"$PSScriptroot.ps1"
&"$PSScriptroot.ps1"
&"$PSScriptroot.ps1"
&"$PSScriptroot.ps1"
&"$PSScriptroot.ps1"
&"$PSScriptroot.ps1"
J'ai ensuite exécuter le Maître.ps1 sur le dossier avec tous les fichiers - et il fait le travail jusqu'à présent.
source d'informationauteur wp44
Vous devez vous connecter pour publier un commentaire.
Si vous ne voulez pas coder en dur le chemin, vous pouvez faire le Maître.ps1 comme ceci:
Et il va regarder pour ces scripts dans le répertoire où il est.
Il suffit de créer un fichier texte à l'aide de n'importe quel éditeur de code ou un éditeur de texte, et utiliser l'exemple suivant script batch:
L'enregistrer en tant que
script.bat
et de l'ouvrir. Cela va faire deux powershell scripts s'exécutent en même temps.Pour obtenir le chemin d'accès que votre script, vous pouvez le faire:
Qui va afficher quelque chose comme "C:\Users\WP\Desktop\Scripts\Master.ps1'. À partir de ce que nous pouvons faire un
Split-Path
pour obtenir le dossier et exécutezGet-ChildItem
sur le dossier pour obtenir une liste de fichiers. Nous allons probablement que vous souhaitez exclure le maître de script, de sorte que nous ne sommes pas dans une boucle récursive, donc, qui ressemblerait à quelque chose comme:Alors que nous venons de les exécuter à travers un
ForEach-Object
boucle, et appeler le script avec l'opérateur d'appel&
en tant que tel:Edit: Hm, qui n'était pas le filtrage de droit. Voici une ré-écriture qui ne filtrent le maître script correctement.
La raison pour laquelle le powershell écran pop-up est parce que vous n'avez pas l'argument -NoExit ensemble. Veuillez utiliser ce qui suit comme un exemple pour voir si votre code fonctionne correctement:
Désolé pour la réponse tardive mais j'ai aussi couru dans la question et c'est comment j'ai pu le résoudre pour vous assurer un travail.
Aussi que je change le nom du fichier comme suit:
Êtes-vous le codage en dur les chemins d'accès aux fichiers dans le fichier maître?
Dans ce cas, quelque chose comme cela devrait fonctionner
Pour exécuter plusieurs scripts de manière séquentielle, vous pouvez utiliser le
-Wait
paramètre surStart-Process
comme suit:PowerShell attendre la fin du script pour terminer avant d'exécuter le script suivant