Что означает знак амперсанда (&) перед командами в PowerShell?

Что означает знак амперсанда (&) перед командами в PowerShell?

Я пытался выполнить команду, введя путь к ней, и когда я нажал TAB, произошло следующее:

C:\> C:\Program Files\KeePassXC\keepass<TAB>
# became this:
C:\> & 'C:\Program Files\KeePassXC\keepassxc-cli.exe'

Он просто оценивает строку? По крайней мере, я так предполагаю, поскольку путь должен быть заключен в кавычки из-за пробелов в нем, а без них &я получаю следующую ошибку:

C:\> 'C:\Program Files\KeePassXC\keepassxc-cli.exe' --help

At line:1 char:50
+ 'C:\Program Files\KeePassXC\keepassxc-cli.exe' --help
+                                                  ~~~~
Unexpected token 'help' in expression or statement.
At line:1 char:1
+ 'C:\Program Files\KeePassXC\keepassxc-cli.exe' --help
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The '--' operator works only on variables or on properties.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : UnexpectedToken

Не могли бы вы дать ссылку на документацию? Спасибо!


Темы обсуждения &(1,2) совсем о другом (или я не нашел связи).

решение1

Это оператор вызова или вызова.Позвоните оператору и:

Вы можете использовать оператор вызова для выполнения скриптов, используя их имена файлов. В примере ниже показано имя файла скрипта, которое содержит пробелы. При попытке выполнить скрипт PowerShell вместо этого отображает содержимое строки в кавычках, содержащей имя файла. Оператор вызова позволяет выполнить содержимое строки, содержащей имя файла.

PS C:\Scripts> ".\script name with spaces.ps1"
.\script name with spaces.ps1

PS C:\Scripts> & ".\script name with spaces.ps1"
Hello World!

Связанный контент