programing

powershell에서 마침표 '.' 연산자는 무엇을 합니까?

abcjava 2023. 7. 30. 16:46
반응형

powershell에서 마침표 '.' 연산자는 무엇을 합니까?

이건 이상한 거예요.는 일적으파외명부실때사다용합니행할령을 합니다.&다음과 같은 연산자:

& somecommand.exe -p somearguments

하지만, 오늘 저는 우연히 발견했습니다..연산자는 다음과 같이 사용됩니다.

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

이 시나리오에서 기간은 어떤 목적으로 사용됩니까?이해가 잘 안 돼요.

"." 점 소싱 연산자는 사용자가 호출한 다른 스크립트에서 변수를 보내고 받습니다.&" 호출 연산자는 변수만 전송합니다.

예를 들어, 다음을 고려합니다.

스크립트 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

스크립트 2(웃음.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!"

두 스크립트를 모두 생성하고 첫 번째 스크립트만 실행합니다."." 점 소싱 연산자가 변수를 보내고 받는 것을 볼 수 있습니다.

둘 다 용도가 있으니 창의력을 발휘하세요.예를 들어, "&" 호출 연산자는 현재 스크립트에서 원래 값을 유지하면서 다른 스크립트에서 변수 값을 수정하려는 경우 유용합니다.일종의 보호 장치. ;)

요약: 일반 운영자가 달성할 수 없는 것을 달성하기 위해 사용되는 특수 운영자입니다.이 연산자.두 개의 서로 다른 특수 운영자 사용 사례가 있습니다.

더 롱:

다른 언어, 스크립트 또는 기타 언어와 마찬가지로 PowerShell 스크립트는 값을 조작하는 데 도움이 되는 다양한 유형의 연산자도 지원합니다.이러한 정규 연산자에는 다음이 포함됩니다.

  • 산술
  • 과제
  • 비교
  • 논리적
  • 리디렉션
  • 리스트 항목
  • 분할 및 결합
  • 유형
  • 유니아리

그러나 PowerShell은 다른 유형의 운영자가 수행할 수 없는 태스크를 수행하는 데 사용되는 특수 운영자도 지원합니다.

이러한 특수 운영자에는 다음이 포함됩니다.

  • @() 하위 연산자는 다음과 같습니다.
  • & 교환원
  • [ ]
  • ,
  • . 소싱 는 다음과 .
  • -f 연산자
  • [ ] 연산자
  • | 이름
  • . 취소 는 다음과 같습니다.
  • ..
  • :: 멤버 는 다음과 같습니다.
  • $( ) 표현 는 다음과 같습니다.

. 도트 소싱 연산자: 이 컨텍스트에서는 스크립트를 현재 범위에서 실행할 수 있도록 하는 데 사용되며 스크립트에서 생성한 함수, 별칭 및 변수를 현재 스크립트에 추가할 수 있습니다.

예:

. c:\scripts.sample.ps1 

참고: 이 응용 프로그램은 다음과 같습니다..(으)와할 수 있는 .. 디렉터리를 )입니다.

예:

. .\sample.ps1

. 속성 참조 취소 연산자:다음을 따르는 개체의 속성 및 메서드에 액세스할 수 있습니다..왼쪽에 있는 표현식을 나타냄으로써.문자는 개체이고 의 오른쪽에 있는 식은 개체 멤버(속성 또는 메서드)입니다.

예:

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

고지 사항 및 출처:

PowerShell 스크립트를 보는 동안 동일한 질문이 있었는데, 이 스크립트의 기능 세트를 확장하려고 시도하다가 답을 찾기 위해 조사를 수행할 때 여기에 도착했습니다.하지만 저는 Microsoft Development Network에 대한 이 멋진 글을 사용하여 IT Pro의 동일한 아이디어에 대한 추가 확장을 통해 제 답을 찾을 수 있었습니다.

건배.

점은 호출 연산자입니다.

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

하지만, 당신의 경우, 저는 그것이 무엇을 하는지 모르겠습니다.

객체 속성에 대한 .Period 또는 .full stop(예:

$CompSys.TotalPhysicalMemory

다음을 참조하십시오. http://www.computerperformance.co.uk/powershell/powershell_syntax.htm#Operators_

이 대답은 David Brabant와 그의 논평가들이 이미 제공한 것들을 약간 확장하는 것입니다.그 발언들이 모두 사실이고 적절하지만, 놓친 것이 있습니다.

의 OP &외부 명령을 호출할 필요가 없는 경우. &(그의 사용 예에) 영향을 미치지 않을 것입니다.의 은?&이름이 (문자열) 식의 값인 명령을 호출할 수 있습니다.&를 (하며, 첫 인 "powershell", "powershell" ("powershell"), "powershell", "powershell"입니다.&정식으로 호출합니다.에 약에만.&powershell은 라인의 첫 번째 항목을 실행할 명령으로 사용합니다.

하만지그, 그..두 번째 에서는 필요합니다(그러나 다른 사람들에 의해 언급된 바와 같이).&이 경우에도 마찬가지로 효과적입니다.명령어가 됩니다.$env:systemdrive형태의 입니다.) 그래서 파워셸은 어떤 형태의 표현을 기대하고 있을 것입니다.그러나 변수 참조 바로 뒤에는 올바른 식이 아니므로 오류가 발생하는 베어 파일 경로가 있습니다..(또는)& 부분이 않기 에) 는 확장로 처리됩니다." "은 )로 따라서 명령줄은 다음과 같이 처리됩니다.

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

번째 는 " 번주장은째"입니다.$env:systemdrive에 그으로대다체음에된것다▁substit음에▁then..이렇게 명명된 프로그램을 호출합니다.

참고: powershell이 명령줄 인수를 처리하는 방법에 대한 전체 설명은 여기에 제시된 것보다 훨씬 복잡합니다.이 버전은 질문에 답하는 데 필요한 필수적인 부분으로 축소되었습니다.포괄적인 설명은 about_Parsing을 참조하십시오.완전하지는 않지만 대부분의 일반적인 사용법을 다루어야 합니다.스택 오버플로 및 깃허브(현재 파워셸이 있는 곳)에는 공식 문서에 나열되지 않은 겉보기에 특이한 동작을 다루는 다른 게시물이 있습니다.또 다른 유용한 리소스는 _Operators에 대한 것이지만 아직 완전하지는 않습니다.예를 들어 다음과 같습니다..그리고.&파워셸 스크립트/슬립렛이 아닌 다른 것을 호출할 때 전혀 언급되지 않습니다.

언급URL : https://stackoverflow.com/questions/10727006/what-does-the-period-operator-do-in-powershell

반응형