Argument de la ligne de commande de Powershell avec des espaces et des crochets bouclés?

je fais une tentative à mon premier script powershell et j'obtiens une erreur de paramètre lors de l'exécution du code suivant. Comment puis-je transmettre l'argument à la commande dans powersehll?

& "bcdedit" /store c:bootbcd /set {bootmgr} device partition=C:

EDIT: Le code de travail est le suivant:

& "bcdedit" /store c:bootbcd /set "{bootmgr}" device partition=C:
2
demandé sur arynhard 2012-06-01 18:27:43

2 réponses

les crochets bouclés ont tout jeté. Mettre des guillemets autour de {bootmgr} a résolu le problème.

& "bcdedit" /store c:\boot\bcd /set "{bootmgr}" device partition=C:
3
répondu arynhard 2012-06-01 23:01:29

le problème que vous rencontrez est que L'analyseur PowerShell fonctionne différemment de l'analyseur cmd.exe . Un moyen de contourner cela est de passer votre commande pour cmd.exe et laissez faire l'analyse.

pour ce faire, passez la commande à cmd.exe en utilisant l'option /c comme une chaîne de caractères à simple guillemet.

cmd.exe /c 'bcdedit /store c:\boot\bcd /set {bootmgr} device partition=C:'

cette méthode est particulièrement utile lorsque la commande que vous utilisez requiert des arguments cités par une chaîne de caractères.

2
répondu Tumba 2012-06-01 18:09:38