J'essaie d'exécuter un fichier EXE à l'aide d'un script PowerShell. Si j'utilise la ligne de commande cela fonctionne sans problème (je fournis d'abord le nom de l'exécutable et une série de paramètres pour l'invoquer):
"C:\Program Files\Automated QA\TestExecute 8\Bin\TestExecute.exe" C:\temp\TestProject1\TestProject1.pjs /run /exit /SilentMode
Mais faire exactement la même chose à l'intérieur d'un script renvoie une erreur:
Le terme '"C: \ Program Files \ Automated QA \ TestExecute 8 \ Bin \ TestExecute.exe" C: \ temp \ TestProject1 \ TestProject1.pjs / run / exit / SilentMode' n'est pas reconnu comme le nom d'une cmdlet, fonction , fichier de script ou programme utilisable. Vérifiez l'orthographe du nom ou, si un chemin a été inclus, vérifiez que le chemin est correct et réessayez.
(J'ai appelé la commande en utilisant l'opérateur "&".)
Comment puis-je résoudre ce problème?
Réponses:
ou
MISE À JOUR: désolé j'ai manqué la phrase "(j'ai invoqué la commande à l'aide de l'opérateur" & ")". J'ai eu ce problème lorsque j'évaluais le chemin de manière dynamique. Essayez la construction Invoke-Expression:
la source
Il semble que vous spécifiez à la fois le fichier EXE et son premier argument dans une seule chaîne, par exemple;
'"C:\Program Files\Automated QA\TestExecute 8\Bin\TestExecute.exe" C:\temp\TestProject1\TestProject1.pjs /run /exit /SilentMode'
. Cela ne fonctionnera pas. En général, vous invoquez une commande native qui a un espace dans son chemin comme ceci:Cela
&
s'attend à être suivi d'une chaîne qui identifie une commande: applet de commande, fonction, chemin d'accès relatif ou absolu exe natif.Une fois que cela fonctionne:
Commencez à citer les arguments si nécessaire. Bien qu'il semble que vos arguments devraient être très bien (pas d'espaces, pas d'autres caractères spéciaux interprétés par PowerShell).
la source
.\foo.exe
et vous pouvez également utiliser un chemin relatif..\..\foo.exe
et un chemin relatif avec des espaces& '..\..\path with spaces\foo.exe'
.cmd /c "C:\temp\strarc.exe -cjd:M:\ | C:\temp\strarc.exe -s:8 -xd:N:\"
.Dans le Powershell, accédez à l'emplacement du fichier .exe. Par exemple:
cd C: \ Utilisateurs \ Administrateurs \ Téléchargements
PS C: \ Utilisateurs \ Administrateurs \ Téléchargements> & '. \ Aaa.exe'
Le programme d'installation apparaît et suivez les instructions à l'écran.
la source
Démo:
la source
N'étant pas développeur, j'ai trouvé une solution en exécutant plusieurs commandes ps en une seule ligne. Par exemple:
En plaçant un "(guillemets doubles) avant le & (esperluette), il exécute l'exécutable. Dans aucun des exemples que j'ai trouvé, cela n'a été mentionné. Sans les guillemets doubles, l'invite ps s'ouvre et attend l'entrée.
la source