RunProgram avec des espaces dans une commande PowerShellJ'obtiens une erreur lors du chargement d'une chaîne contenant des espaces et je dois passer entre guillemets doubles.
Names Default to Here(1);
parameter_A = "this has spaces";
parameter_B = "specific.domain.com";
command = "program -Name \!"" || parameter_A ||"\!" -Path \!"" || parameter_B || "\!"";
write(command );
// outputs the expected:
// program -Name "this has spaces" -Path "specific.domain.com"<BR />
add_result = RunProgram(
Executable( "powershell.exe" ),
Options( {"/c", command } ),
ReadFunction( "text" ));Le paramètre_A interrompt l'exécution car il pense que d'autres arguments ont été transmis. Pourtant, la commande fonctionne si je copie et colle le résultat de write dans PowerShell.
Qu'est-ce que je rate?
Modélisation statistique avancéeÉtudes de consommation et de marchéMélange et nettoyage des donnéesRe : RunProgram avec des espaces dans une commande PowerShellici indique une explication détaillée de la raison pour laquelle la ligne de commande Windows est si difficile à utiliser. Les guillemets ne font pas vraiment ce que nous pensons.
Je mélangerais les apostrophes et les guillemets, comme vous l'avez fait, car c'est plus facile à comprendre.
Re : RunProgram avec des espaces dans une commande PowerShellCela m'a aidé plus tôt dans un cas similaire : Transmettre le devis dans l'application Run Program
escapedquote = "\!\\!"";
Re : RunProgram avec des espaces dans une commande PowerShellNames Default to Here(1);
parameter_A = "this has spaces";
parameter_B = "specific.domain.com";
command = "powershell "\!"program -Name '" || parameter_A ||"' -Path '" || parameter_B || '"\!"";
write(command );
// outputs the expected:
// powershell "program -Name 'this has spaces' -Path 'specific.domain.com'"
add_result = RunProgram(
Executable( "cmd.exe" ),
Options( {"/C", command } ),
ReadFunction( "text" ));Cela a fonctionné pour moi, je ne sais pas s'il existe une meilleure solution qui n'utilise pas de guillemets simples.