Conversion .bat → .ps1
Posté : 04 juil. 2026 13:05
Question pour la communauté : avez-vous déjà réécrit un script complexe en .bat pour PowerShell ? Je ne parle pas de simplement traduire chaque ligne, mais de vraiment réécrire le script pour qu'il soit adapté à PowerShell, en utilisant tout ce que PowerShell a à offrir sans essayer de garder les anciennes méthodes du batch. J'ai un vieux script de déploiement d'environ 800 lignes en .bat qui fonctionne bien, mais qui est devenu difficile à maintenir. Il fait des installations silencieuses, gère des flags, vérifie les versions installées, copie des fichiers de configuration et nettoie tout à la fin. Cependant, j'ai commencé à atteindre les limites du batch en termes de maintenance, comme le parsing de versions, la lisibilité et la gestion des erreurs. Je sais que tout ne peut pas être directement transposé, car une grande partie du script dépend d'exécutables externes comme des installateurs .exe ou .msi. Même avec PowerShell, je devrai toujours compter sur les codes de retour de ces exécutables et sur la variable $LASTEXITCODE, sans exceptions natives dans tous les cas.
J'ai quelques questions :
Lorsque vous réécrivez un script comme celui-ci, commencez-vous complètement de zéro ou conservez-vous une partie de la logique existante, même si cela signifie garder des méthodes qui ne sont pas idéales ?
Quels cmdlets ou approches vous ont vraiment aidés à améliorer ce type de migration, au-delà des équivalents évidents comme findstr et Select-String ?
Comment gérez-vous les installations et leur suivi de manière propre, en utilisant des cmdlets comme Start-Process, en gérant les retours, en synchronisant les processus et en créant des logs ?
Comment gérez-vous la transition pour les utilisateurs finaux de manière transparente, en termes d'ExecutionPolicy, de wrappers .bat, d'appel via powershell.exe, de compatibilité entre PowerShell 5.1 et 7, etc. ?
Je préfère clarifier ces points avant de commencer à réécrire mon script, car cela va prendre du temps et je veux éviter les pièges classiques dès le départ.
Tous les retours d’expérience sont les bienvenus.
J'ai quelques questions :
Lorsque vous réécrivez un script comme celui-ci, commencez-vous complètement de zéro ou conservez-vous une partie de la logique existante, même si cela signifie garder des méthodes qui ne sont pas idéales ?
Quels cmdlets ou approches vous ont vraiment aidés à améliorer ce type de migration, au-delà des équivalents évidents comme findstr et Select-String ?
Comment gérez-vous les installations et leur suivi de manière propre, en utilisant des cmdlets comme Start-Process, en gérant les retours, en synchronisant les processus et en créant des logs ?
Comment gérez-vous la transition pour les utilisateurs finaux de manière transparente, en termes d'ExecutionPolicy, de wrappers .bat, d'appel via powershell.exe, de compatibilité entre PowerShell 5.1 et 7, etc. ?
Je préfère clarifier ces points avant de commencer à réécrire mon script, car cela va prendre du temps et je veux éviter les pièges classiques dès le départ.
Tous les retours d’expérience sont les bienvenus.