2010-05-05 5 views
1

J'ai un tas de scripts Powershell que j'ai besoin de lancer depuis Perl. J'ai le code suivant mais pour une raison quelconque les scripts Powershell ne sont pas invoqués. J'ai essayé à la fois le backtick et la commande systèmeExécution de Powershell à partir de Perl

$path = "C:/Users/PSScript.ps1"; 
$pwspath = "c:/windows/system32/windowspowershell/v1.0/powershell.exe"; 

$output = `$pwspath -command $path`; 

system($pwspath -command $path); 

S'il vous plaît aidez-moi ici. Etes-vous sûr que votre code est formaté correctement?

+0

Astuce: essayez d'ajouter 'use strict; utilisez les avertissements; en haut de votre script et réessayez. – Ether

+0

Êtes-vous sûr de vouloir des backticks? Les backticks sont utilisés pour capturer ce qui est imprimé sur la sortie de la console suite à l'exécution de la commande. 'system' est plus approprié pour appeler des scripts. – Zaid

Répondre

0

Ne devriez-vous pas utiliser des citations?

system("$pwspath -command $path"); 

backtick devrait fonctionner, essayer:

my @stdout = `$pwspath -command $path`; 
print join("\n", @stdout),"\n"; 
+0

salut, système () fonctionne, mais backtick ne marche pas essayé ce qui suit ' "$ pwspath -command $ path"'; système ("$ pwspath -command $ path") toutes les idées pour backtick, car j'ai besoin de capturer la sortie standard, puis le formater – Marlin

1

Vous devez utiliser -File au lieu de -Command

Questions connexes