최근 파워쉘 커뮤니티 포럼에서 우리는 외부 파일에 파워쉘 변수를 저장할 수 있는지,그렇다면 어떻게 할 수 있는지 묻는 질문을 받았습니다. 실제로 외부 파일에 변수를 저장하여 사용할 수 있습니다. 이러한 외부 변수는 다양한 파일 형식으로 저장할 수 있습니다. 이러한 파일을 소스 점 수 있기 때문에 파워 쉘 파일에 저장하는 것은 가장 쉬운 방법 중 하나입니다.
우리는 변수를 저장하는 다음과 같은 방법을 다룰 것입니다:
- 스크립트 파일
- 텍스트 파일
이 게시물에 표시된 예는 매우 간단하지만 외부 파일에 상당히 복잡한 변수를 저장할 수 없다는 것을 의미하지는 않습니다. 당신이 외부 변수를 저장 실험 할 경우 여기에이 게시물에 대한 샘플 파일을 다운로드 할 수 있습니다.
스크립트 파일
도트 소싱이 외부 변수를 저장하는 가장 쉬운 방법 일 수 있지만 항상 가장 안전한 것은 아닙니다. 파일이 도트 소스 일 때 우리는 그 스크립트를 실행하도록 파워 쉘을 말하고 있습니다. 파일에 악성 코드가 있으면 해당 코드도 실행됩니다.
도트 소싱에 대한 추가 사항에서는 외부 변수 스크립트가 서명되어 있고 컴퓨터에서 원격 실행이 활성화되어 있는지 확인해야 합니다.
도트 소싱은 동적으로 무언가에 대한 정보를 얻어야 할 경우 도움이 될 수 있습니다. 이 게시물에서 설명하는 다른 옵션의 경우 파일 형식에 저장된 데이터를 수동으로 변경해야합니다.
1234 |
# 여기에서 우리는 소스 외부 변수 파워 쉘 파일을 점. "C:\Test\BlogPosts\ExternalVariables.ps1 이 문제를 해결하려면 다음을 수행하십시오. |
다음은 외부 변수 파일에 있는 내용입니다.:
#외부 변수 선언
$외부 변수 선언
$외부 변수 선언
$외부 변수 선언
$외부 변수 선언
$외부 변수 선언
$외부 변수 선언
$외부 변수 선언
$외부 변수 선언 2=’기술’
텍스트 파일
외부 변수는 일반 텍스트에서 일반 텍스트와 같은 여러 텍스트 파일 및 형식으로 저장할 수도 있습니다.이 파일을 사용하는 방법은 무엇입니까? 이 방법으로 변수를 가져올 때 코드를 실행하지 않으므로 정보를 얻기 위해 파일을 지속적으로 모니터링하지 않으면 문제가되지 않습니다.
다음 세 가지 그림은 간단한 텍스트 파일에 정보를 저장하는 여러 가지 방법의 예입니다:
12345678910111213 |
$이 스크립트는 다음과 같이 작동합니다.마이커맨드이 매개 변수는 다음과 같습니다.모든 문자열을 배열로 출력할 수 있도록 하기 위해,우리는 각각의 루프($문자열에서$외부 _변수)를 사용한다.} |
여기에 외부에있는 것이 있습니다.변수.파일:
“”버전 리콜”
“원시 스크립트”
“버전 리콜”
그냥 배열처럼,우리는 텍스트 파일에 해시 테이블을 저장할 수 있습니다. 텍스트 파일에서 해시 테이블을 가져오려면 출력을 해시 테이블로 변환하기 위해 콘텐츠 가져오기 출력을 파이프해야 합니다.
1234567891011121314 |
$이 스크립트는 다음과 같이 작동합니다.마이커맨드다음 예제에서는 다음과 같이 설명합니다.이 파일은 계획 텍스트에 저장되어 있으며 특별한 형식이 아닙니다.#우리는 여기서"원시"매개 변수를 사용하여 내용 가져 오기-내용 가져 오기-파일의 내용#을 얻을 때 우리의 해시 테이블이 개체로 변환되지 않도록$프로그램=내용-원시 경로 가져 오기/변환에서 문자열 데이터 쓰기 호스트"변수의 유형'$프로그램'엔"$프로그램.이 방법은 다음과 같습니다. |
여기에 외부 변수샤시테이블이 있습니다.2015 년:이와 같은 텍스트 파일에 정보를 저장하는 것은 사람이 읽을 수 있는 형식으로 정보를 유지하는 편리한 방법입니다. 텍스트 파일은 실행되지 않는 이점이 있으므로 정기적으로 관리하지 않는 파일에 악성 코드가 저장되어 있으면 실행되지 않습니다.
JSON 파일의
하는 것도 가능하 저장 외부에 있는 변수를 JSON 형식입니다. 이 경우,우리는 다시 한 번 얻을 내용의 출력을 파이프해야 할 것입니다.; 그러나 이번에는 변환이 아닌 변환이 아닌 변환이 아닙니다. 이 응용 프로그램은 당신에게 아름다운 천장 디자인 아이디어의 갤러리를 보여줍니다 www.JSON.org.
1234567891011121314151617 |
$이 스크립트는 다음과 같이 작동합니다.마이커맨드이 방법은 다음과 같습니다.json"#한 정보를 얻기에서 json 파일#우리는 전달에서 출력을 얻기-콘텐츠를할 수 있는지 여부를 반-Json Cmdlet$JsonObject=얻 콘텐츠$ScriptDir|할 수 있는지 여부를 반-Json#지금 우리가 배열이 있는 의미는 우리가 지수#요소에 그것을 사용하$JsonObject.사용자#인덱싱되면 요소의 속성을 호출 할 수 있습니다.쓰기-호스트"개별적으로 속성 printed"$JsonObject.Users.Name$JsonObject.Users.Age$JsonObject.Users.City$JsonObject.Users.Country$JsonObject.Users.UserId |
이 파일에는 다음과 같은 내용이 포함되어 있습니다:
{
“사용자”:
}
변수 파일
변수를 저장하면 필요한 경우 변수 파일에 주석을 추가할 수 있습니다. 이 게시물에서 우리가 이야기 할 유일한 두 가지 파일 형식은 다음과 같습니다. 댓글이 허용되지 않습니다. 자세한 내용은 다음을 참조하십시오 w3schools.com/xml.
123456789 |
$이 스크립트는 다음과 같이 작동합니다.마이커맨드이 방법은 다음과 같습니다.xml"#읽에서의 모든 정보는 우리의 변수를 XML 파일#우리가 해야할 변수를 캐스팅으로 할 때 우리는 우리의 모든 파일에서 정보를 그$XML_Variable=Get-Content-Path$ScriptDir#참조하여식 개체 배열에 저장된 식사가 개체$XML_Variable.아침 식사_메뉴.음식/형식-목록 |
이 파일에는 다음과 같은 내용이 포함되어 있습니다:
Belgian Waffles
.95
Two of our famous Belgian Waffles with plenty of real maple syrup
650
Strawberry Belgian Waffles
.95
Light Belgian waffles covered with strawberries and whipped cream
900베리-베리 벨기에 와플
$8.95
벨기에 와플 모듬 신선한 딸기와 휘핑 크림으로 덮여
900
저장 형식 중에서 선택할 때 어느 것이 더 친숙한지 확인할 수 있습니다. 이 두 가지 주요 차이점은 주석을 허용한다는 것입니다. 이러한 모든 옵션은 외부 파일에 정보를 저장하여 다른 프로그램에서 읽거나 나중에 동일한 프로그램에서 사용할 수 있는 실행 가능한 방법입니다. 얼마나 복잡한 지,동적이든 아니든,그리고 얼마나 많은 정보가 저장되어야하는지는 사용할 형식을 결정합니다.
파일로 내보내기
파워쉘로 정보를 가져오는 것과 마찬가지로,사용 중인 프로그램에서 외부 파일로 정보와 객체를 내보낼 수도 있습니다. 단순히 외부 파일 및 개체의 경로를 해당 내보내기 기능에 전달하면 스니펫이 다른 모든 것을 처리합니다. 우리는 미래의 블로그 게시물에 조각을 사용하여 파일로 내보내기를 다룰 것입니다.