Réponse utile de Frode F. fournit des solutions efficaces.
En ce qui concerne les quand vous avez besoin &
, la fonction opérateur d'appel :
Pour exécuter une commande / ouvrir un document qui est no spécifié en tant que chaîne littérale non citée Vous avez besoin de &
.
C'est-à-dire, &
est nécessaire chaque fois que vous spécifiez le nom de la commande (ou le chemin d'accès) / le nom du fichier du document (ou le chemin d'accès) :
-
soit : en tant que chaîne de caractères citée (par exemple, "G:\image.png"
)
-
ou : comme le résultat d'une expression (par exemple, ("$usbDriveLetter" + "image.png")
; idem pour $(...)
)
Nota:
-
Dans le cas de l'ouverture d'un document (plutôt que d'invoquer un exécutable), vous pouvez utiliser la fonction Invoke-Item
au lieu de &
.
-
Si vous essayez de ouvrir un chemin du dossier dans l'explorateur de fichiers, seulement Invoke-Item
œuvre.
En ce qui concerne les pourquoi vous avez besoin &
:
PowerShell a deux les modes d'analyse fondamentaux :
La course à pied Get-help about_Parsing
présente une introduction à ces modes.
En bref, c'est le premier jeton qui détermine le mode appliqué y afin de exécuter / ouvrir quelque chose, il doit être analysé en argument mode (en expression le résultat est simplement sortie ) ; ainsi, le premier jeton doit être :
- soit : un nom de commande/document littéral, sans guillemets, ou un chemin d'accès, comme indiqué.
- ou :
&
Dans ce cas, l'argument suivant - qui peut être spécifié comme une chaîne de caractères ou une expression entre guillemets - est interprété comme la commande / le nom du document ou le chemin d'accès à exécuter / ouvrir.