2013-01-17 2 views
2

좋아요. 디렉토리 트리에 같은 이름의 텍스트 파일이 여러 개 있고이 파일을 모두 하나의 파일로 연결하려고합니다.foreach를 파이프 라인으로 바꿉니다.

나는 foreach와 함께 작업하게 만들었지 만, pipleline을 사용하는 더 좋은 방법이 있는지 궁금해하고있었습니다.

더 좋은 방법이 있나요?

코드 : 일,하지만 내가 foreach는하지 않고 그것을 할 수 있었어야 같은 느낌

dir -filter users.txt -recurse | foreach { get-content $_.FullName | add-content .\All.txt } 

.

답변

6

당신이 Get-Content에 대한 도움말 당신이 -Path이 직접 파이프에 도착-ChildItem을의 출력을 시도 할 수 있음을 의미하는 문자열 [] 배열을 받아들이는 것을 볼 수 있습니다 읽으면

[22:24:57] PS-ADMIN> get-help Get-Content 

NAME 
    Get-Content 

SYNOPSIS 
    Gets the contents of a file. 

SYNTAX 
    Get-Content [-Path] <String[]> [-Credential <PSCredential>] ...... 

그래서 이것을 시도. :

Get-ChildItem -Filter users.txt -Recurse | Get-Content | Set-Content .\all.txt 

편집 : 사실 : 더 많은 연구 후에, 나는 그것이에서는 FileInfo - 객체에서 PSPath 특성을 복용하고 경로로 것을 사용하는 것 -LiteralPath을입니다 것으로 나타났습니다. 여전히 동일한 논리 :-)

+0

고마워요! 나는 게시하기 전에 그것을 시도했고 단지 "users.txt"로 채워진 파일을 받았다고 맹세 할 수있었습니다. 나는 처음 시도 할 때 틀린 일을 했음에 틀림 없다. 왜냐하면 내가 다시 시도했을 때, 그것은 훌륭하게 작동했기 때문이다. – JMarsch

관련 문제