Bonjour,
Je fais un script qui permet de remonter une base MySQL, présente sur un autre serveur, à partir d'un fichier .sql présent dans le même répertoire que mon script.
J'ai une commande dans un script batch qui me permet de restaurer une base de données MySQL à partir d'un fichier texte:
C:\...\mysql.exe -h localhost -u root -p base_données_à_restaurer < C:\...\SauvegardeBDD\fichier_dump_base_données.sql
Je souhaite intégrer cette commande à un script PowerShell. J'ai donc tout naturellement ajouté à mon script PowerShell la commande suivante:
cmd.exe /c C:\...\mysql.exe "-h" localhost "-u" root "-p" base_données_à_restaurer < C:\...\SauvegardeBDD\fichier_dump_base_données.sql
Cependant lors de l'exécution du script, un message d'erreur est apparu comme quoi le flux de redirection en input n'était pas pris en charge:
1 2 3 4 5
| L'opérateur «*<*» est réservé pour une utilisation ultérieure.
Au niveau de C:\Users\mmonge\Documents\Script_de_Sauvegarde\CopieBDD2G\CopyBDD2G.ps1*: 53 Caractère*: 81
+ cmd.exe /c $mysqlpathmysql "-h" $mysqlhost "-u" $mysqluser "-p"$mysqlpassword < <<<< $mysqlpathtomysqldumpfile;
+ CategoryInfo : ParserError: (<:OperatorToken) [], ParseException
+ FullyQualifiedErrorId : RedirectionNotSupported |
J'ai essayé d'inverser les flux de la manière suivante:
cmd.exe /c C:\...\SauvegardeBDD\fichier_dump_base_données.sql > C:\...\mysql.exe -h localhost -u root -p base_données_à_restaurer
Ensuite, j'ai essayé de mettre des "quotes" sur le flux de redirection mais sans succès, aucun message d'erreur mais commande ne donnant aucun résultat:
cmd.exe /c C:\...\mysql.exe "-h" localhost "-u" root "-p" base_données_à_restaurer "<" C:\...\SauvegardeBDD\fichier_dump_base_données.sql
Enfin, je suis aller chercher de la documentation et j'ai essayé d'utiliser la fonction Get-Content mais sans succès de deux manières différentes.
Premier essai:
cmd.exe /c C:\...\mysql.exe "-h" localhost "-u" root "-p" base_données_à_restaurer | Get-Content C:\...\SauvegardeBDD\fichier_dump_base_données.sql
Deuxième essai:
cmd.exe /c Get-Content | C:\...\SauvegardeBDD\fichier_dump_base_données.sql > C:\...\mysql.exe "-h" localhost "-u" root "-p" base_données_à_restaurer
Etant bloqué suite à ce problème, je ne peux pas remonter ma base de données à partir du fichier de dump.
Je vous remercie d'avance pour toute information me permettant d'avancer.
Partager