Подтвердить что ты не робот

Что такое период? ". оператор делает в powershell?

Это странно. Обычно, когда я выполняю внешнюю команду из powershell, я использую оператор & следующим образом:

& somecommand.exe -p somearguments

Однако сегодня я столкнулся с оператором ., который используется следующим образом:

.$env:systemdrive\chocolatey\chocolateyinstall\chocolatey.cmd install notepadplusplus

Какая цель служит в этом сценарии? Я не понимаю.

4b9b3361

Ответ 1

"." оператор вызова будет отправлять и получать переменные из других сценариев, которые вы вызывали. "&" оператор вызова ТОЛЬКО посылает переменные.

Например, учитывая следующее:

Script 1 (call-operator.ps1):

clear

$funny = "laughing"

$scriptpath = split-path -parent $MyInvocation.MyCommand.Definition
$filename = "laughing.ps1"

"Example 1:" # Call another script. Variables are passed only forward.

& $scriptpath\$filename

"Example 2:" # Call another script. Variables are passed backwards and forwards.

. $scriptpath\$filename
$variableDefinedInOtherScript

Script 2 (laughing.ps1):

# This is to test the passing of variables from call-operator.ps1

"I am $funny so hard. Passing variables is so hilarious."

$variableDefinedInOtherScript = "Hello World!"

Создайте оба сценария и ТОЛЬКО запустите первый. Вы увидите, что "." оператор вызова отправляет и принимает переменные.

Оба имеют свои возможности, поэтому будьте творческими. Например, "&" оператор вызова был бы полезен, если бы вы захотели изменить значения переменных в другом script, сохранив исходное значение в текущем script. Сохрани себя.;)

Ответ 2

Точка - это оператор вызова:

$a = "Get-ChildItem" 
. $a # (executes Get-ChildItem in the current scope)

В вашем случае, однако, я не вижу, что он делает.

Ответ 3

Короткое: Это специальный оператор, используемый для достижения того, чего не могут достичь обычные операторы. Этот конкретный оператор . имеет фактически два разных варианта использования специального оператора.

Длинный:

Как и любой другой язык, сценарии или другие, PowerShell script также поддерживает множество различных типов операторов, чтобы помочь управлять значениями. Эти регулярные операторы включают:

  • Арифметика
  • Назначение
  • Сравнение
  • Логическое
  • Перенаправление
  • Элемент списка
  • Разделить и присоединиться
  • Тип
  • Унарное

Однако PowerShell также поддерживает функции Специальные операторы, которые используются для выполнения задач, которые не могут выполняться другими типами операторов.

Эти Специальные операторы Включить:

  • @() Оператор подвыражения массива
  • & Оператор вызова
  • [ ] Оператор роли
  • , Командный оператор
  • . Оператор Dot sourcing
  • -f Оператор формата
  • [ ] Оператор индекса
  • | Оператор трубопровода
  • . Оператор разыменования свойств
  • .. Оператор диапазона
  • :: Оператор статического члена
  • $( ) Оператор подвыражения

. Оператор Dot sourcing: используется в этом контексте, чтобы позволить script работать в текущей области, по существу позволяя любым функциям, алиасам и переменным, которые были созданы script для добавления в текущий script.

Пример:

. c:\scripts.sample.ps1 

Примечание. За этим приложением специального оператора . следует пробел, чтобы отличить его от символа (.), который представляет текущий каталог

Пример:

. .\sample.ps1

. Оператор разыменования свойств: Позволяет получить доступ к свойствам и методам объекта, который следует за ., указав, что выражение в левой части символа . объект и выражение в правой части объекта - это объект (свойство или метод).

Пример:

$myProcess.peakWorkingSet  
(get-process PowerShell).kill()

Отказ от ответственности и источники:

У меня был такой же вопрос, глядя на PowerShell script, который я пытался расширить на своих наборах функций и приземлился здесь, когда делал свое исследование для ответа. Однако мне удалось найти мой ответ, используя этот великолепный напиток в Microsoft Development Network, дополненный это дальнейшее расширение тех же идей от IT Pro.

Приветствия.