2016-08-18 3 views
-1

vmname/hostname을 다시 묻거나 20 번 params를 전달하는 대신 vsphere powerCLI를 사용하여 vcenter에 20 개의 VM을 배포하려고합니다. 파일에서 20 개의 VM 이름을 전달하려고합니다.파일에서 Powershell 스크립트에 변수를 할당하는 방법은 무엇입니까?

+0

'Get-Content','Import-Csv'? 텍스트 파일에서 여러 가지 방법으로 읽을 수 있습니다. 이것들은 기본적인 명령이므로, 그것들을 통합하는 데 어려움이있는 곳을 이해하지 못하면서 그 이상을 말하기는 어렵습니다. –

+0

Get-Content 사용 CSV 파일에서 행을 읽을 수 있지만 각 행을 입력/변수로 사용하려고합니다. –

+0

파일 내용을 기반으로 루프를 만듭니다. 'Get-Content | ForEach-Object {New-VM $ _}'을 실행하거나, 더 나아가'New-VM'이 파이프 라인 입력을 받아 들일 수 있도록하십시오. 그러나 구체적인 조언을 제공하는 것이 매우 어려운 코드 예제는 없습니다. –

답변

1

이 짧은 한 줄에서이 작업을 수행 할 수 있습니다 그리고 당신처럼 사용하고자하는 값 그래서 :

VMName,Hostname 
VM001,Server01 
VM002,Server02 
VM003,Server03 

그런 다음 파일을 통해 루프를 가져 오기 - CSV와의 Foreach을 사용하고 각 행의 필드 명령을 (새로운-VM은 예제로 사용) 실행합니다.

Import-Csv C:\folder\file.csv | Foreach { New-VM -VMName $_.VMName -Hostname $_.Hostname } 
+0

여러분, 고맙습니다. powershell에 익숙하지 않습니다. 그리고 위의 의견은 저에게 많은 도움이되었습니다. –

0
$1 = Get-content PATH 

$1[ROWNUMBER] 

파일을 가져 와서 행 번호를 선택하는 방법입니다. 당신을보고

은이 같은 것을 할 수있는 각 라인을 사용하고 싶었 : 제목과 함께 CSV 파일을 생성,

$1 = Get-content PATH 
Foreach($Row in $1){ 

New-VM $row 
} 
관련 문제