EseguiProgramma con spazi in un comando PowerShellRicevo un errore durante il caricamento di una stringa che contiene spazi e devo passare tra virgolette doppie.
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" ));IL parametro_A interrompe l'esecuzione poiché ritiene che siano stati passati più argomenti. Tuttavia, il comando funziona se copio e incollo l'output di write in PowerShell.
Cosa mi manca?
Modellazione statistica avanzataRicerche sui consumatori e sul mercatoCombinazione e pulizia dei datiRi: Eseguiprogramma con spazi in un comando PowerShellQui indica una spiegazione approfondita del motivo per cui la riga di comando di Windows è così difficile da usare. Le virgolette non fanno realmente quello che pensiamo che facciano.
Mescolerei gli apostrofi e le virgolette, come hai fatto tu, perché è più facile da capire.
Ri: Eseguiprogramma con spazi in un comando PowerShellQuesto mi ha aiutato in precedenza con un caso simile: Passa il preventivo all'applicazione Run Program
escapedquote = "\!\\!"";
Ri: Eseguiprogramma con spazi in un comando 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" ));Questo ha funzionato per me, non sono sicuro che esista una soluzione migliore che non utilizzi virgolette singole.