2016-08-07 1 views
0

파워 쉘 스크립트 파일과 내가 텍스트 파일의 몇 가지 특성을 가지고에 나는 그래서읽는 방법 값이 나는 특성 properties.txt 파일이

filename = atc 
extension = zip 

path = D:\root 
and so on .. 

에서 다음 값이있는 I .ps1 파일에서이 값을 사용하고 싶습니다.파일에서 .ps1 파일을 읽고 싶습니다. 위의 코드를 시도하고 있지만 작동하지 않습니다. 모든 값을 읽고 싶었습니다

$props_file = Get-Content "D:\code" 
$props = ConvertFrom-StringData ($properties.txt) 

아무도 도와 줄 수 있습니까?

+1

같은 값을 사용할 수 있습니다 "가 작동하지 않습니다." 정확히 어떤 행동을하고 있습니까? 어떤 행동을 원하십니까? –

+0

속성 파일에서 단일 '\'는 이스케이프 문자이므로 Java 및 일부 다른 언어에 유효하게하려면 '\\'를 두 번 사용해야합니다. – dragon788

답변

1

어때요?

$fileContents = get-content c:\path\properties.txt 

$properties = @{} 

foreach($line in $fileContents) 
{ 
    write-host $line 
    # ,2 tells split to return two substrings (a single split) per line 
    $words = $line.Split('=',2) 
    $properties.add($words[0].Trim(), $words[1].Trim()) 
} 

$properties 

은 그럼 당신은 정의이

$properties.Extension 
$properties.path 
+0

스플릿을 사용할 때의 어려움은 한 줄에 여러 개의 '='가있을 수 있다는 것입니다. 추가 된 'value = someval' 문과 함께 쿼리 문자열이있는 중첩 된 URL의 경우입니다. 값을 쿼리하기 위해 준 구문은'ConvertFrom-StringData'를 사용하여 파일을 구문 분석하는 방식으로 작동합니다. – dragon788

+0

@ dragon788 $ line.Split()에 인수를 추가하는 것을 편집에 승인했습니다. –

관련 문제