2016-06-08 3 views
0

Pshell을 사용하여 텍스트 파일의 행 수를 얻으려고합니다. 나는 다음과 같은 쿼리를 사용했다 :Powershell에서 텍스트 파일의 잘못된 개수 얻기

$count = 0 
$reader = New-Object IO.StreamReader $Filename 
while($reader.ReadLine() -ne $null){ $count++ } 
$reader.Close() 

또는

$measure = Get-Content $Filename| Measure-Object 
$lines = $measure.Count 

하지만이 있어야하는 것보다 하나의 특정 텍스트 file.It에 대한 잘못된 행 수를 점점 실제로 slihgly 더 큰 수를 반환합니다.

그래도 난 cmd를에서 아래의 명령을 사용하면, 나는 정확한 수를 얻을 것이다 :

set file=E:\A.txt 
set /a cnt=0 
for /f %%a in ('type "%file%"^|find "" /v /c') do set /a cnt=%%a 
echo %cnt% 

누군가가이 파워 쉘로 번역하는 데 도움이 수 있습니까? 미리 도움과 조언을 부탁드립니다.

+0

수행이 두 명령은 서로 다른 출력을 생성? '(Get-Content "problemtextfile.txt"| Measure-Object) .Count' 대'(cmd/c type "problemtextfile.txt"| Measure-Object) .Count' (문제 텍스트 파일을 매개 변수) –

+0

예를 실행하여 동일한 (약간 큰) 번호를 반환합니다. – Sina89

+1

두 명령 모두 동일한 수를 반환합니까? 메모장과 같은 일반 텍스트 편집기에서 "문제"텍스트 파일을보고 파일의 끝으로 이동하십시오. 줄 번호는 무엇입니까? PowerShell 명령에서 말하는 것과 같아야합니다. –

답변

1

필자는 원본 스크립트가 비어 있지 않은 줄만 계산하고 있다고 생각하며 아마도 powershell 버전이 더 큰 이유 일 수 있습니다.

이 스크립트를 시도하고 괜찮아요 있는지 확인 :

Get-Content $Filename | Select-String "." | measure -line 

감사