Page 1 sur 1

Erreur de syntaxe dans commande PowerShelle

Publié : lun. 16/déc./2024 17:45
par CHR813
Bonjour à tous,

je fais appel à vous pour une erreur de syntaxe dans la commande PowerShell (import-CSV).
C'est mon premier post.
--------------------------------------------------------------

Code : Tout sélectionner

EnableExplicit

Global.s cmd_power, separ , nom_fic, out$
Global.i i, prog 
nom_fic = "Pers_LF.csv"

separ = Chr(34) + ";" + Chr(34)
cmd_power = "Import-Csv -Path " + nom_fic + " -Delimiter " + separ
Debug cmd_power
prog = RunProgram("powershell.exe",cmd_power, "", #PB_Program_Open|#PB_Program_Read|#PB_Program_Hide)
If prog
  While ProgramRunning(prog)
    out$ = out$ + ReadProgramString(prog)
  Wend
   Debug out$
  CloseProgram(prog)
EndIf
------------------------------------------------------------

Debug retourne > Import-CSV -Path "Pers_LF.csv" -Delimiter ";"
Cette ligne copiée dans PowerShell, par copier/coller fonctionne bien.

Voici l'erreur retournée :
Import-Csv -Path Pers_LF.csv -Delimiter ";"
Import-Csv : Argument manquant pour le param tre Delimiter . Spécifiez un paramètre de type System.Char et réessayez.Au caractère Ligne:1 : 30+ Import-Csv -Path Pers_LF.csv -Delimiter ;
+ ~~~~~~~~~~ + CategoryInfo : InvalidArgument : (:) [Import-Csv], ParameterBindingException + FullyQualifiedErrorId : MissingArgument,Microsoft.PowerShell.Commands.ImportCsvCommand

J'ai essayé d'autres syntaxe avec chr(34) et avec les caractères d'échappement mais avec la même erreur.

Voyez-vous la cause de l'erreur ? Merci à vous

Re: Erreur de syntaxe dans commande PowerShelle

Publié : lun. 16/déc./2024 21:10
par Mindphazer
Powershell accepte les doubles quotes ou les simples quotes
Essaie avec des simples quotes, comme ça :

Code : Tout sélectionner

Global.s cmd_power, separ , nom_fic, out$
Global.i i, prog
nom_fic = "Pers_LF.csv"

;separ = Chr(34) + ";" + Chr(34)
cmd_power = "Import-Csv -Path '" + nom_fic + "' -Delimiter ';'"
Debug cmd_power
prog = RunProgram("powershell.exe",cmd_power, "", #PB_Program_Open|#PB_Program_Read|#PB_Program_Hide)
If prog
While ProgramRunning(prog)
out$ = out$ + ReadProgramString(prog)
Wend
Debug out$
CloseProgram(prog)
EndIf
PS : mets des balises quand tu postes un code :wink:

Re: Erreur de syntaxe dans commande PowerShelle

Publié : mar. 17/déc./2024 11:01
par CHR813
Merci avec les simples quotes ça marche !
Désolé pour les balises, c'est mon premier post, je n'ai pas vu comment les mettre.
Bonne journée