Что такое период? ". оператор делает в powershell?
Это странно. Обычно, когда я выполняю внешнюю команду из powershell, я использую оператор &
следующим образом:
& somecommand.exe -p somearguments
Однако сегодня я столкнулся с оператором .
, который используется следующим образом:
.$env:systemdrive\chocolatey\chocolateyinstall\chocolatey.cmd install notepadplusplus
Какая цель служит в этом сценарии? Я не понимаю.
Ответы
Ответ 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.
Приветствия.
Ответ 4
.Период или .full остановка для свойств объектов; как
$CompSys.TotalPhysicalMemory
Смотрите здесь: http://www.computerperformance.co.uk/powershell/powershell_syntax.htm#Operators_