2017-12-07 1 views
1

서버를 마이그레이션 중이며 다양한 파일의 복사본이 제대로 생성되지 않는 경우가 있습니다. 예를 들어 실제 크기가 아닌 1KB의 PDF 파일로 끝나는 경우가 있습니다.powershell을 사용하여 파일 크기를 찾을 수있는 방법

이 파일을 찾기 위해 간단한 powershell 스크립트를 작성했지만 검색 결과 끝에 빈 하위 폴더도 나열했습니다. 그래서 난 내 출력 텍스트 파일에이 같은 것을 볼 것 - C : \ 경로를 \ filename1.pdf C : \ 경로 \ filename2.pdf C : \ 경로 \ 하위 폴더가 무엇 내가하려고 해요 \

할 결과는 빈 폴더를 제거하는 것입니다. 내가 검색 할 수있는 파일 크기를 잡기 위해 읽기 호스트를 만든 수정 된 스크립트에서

Clear 
$username = $env:username 
Get-ChildItem -path "C:\users\blah\blah\blah\" -recurse | Where 
{$_.Length -lt 1025 } | Sort-Object length | ft fullname, length -AutoSize 
|Out-File "C:\Users\$username\Desktop\1kb_Files.txt" 

,하지만 난 스크립트에 그 변수를 추가 할 때 다음 오류가 발생합니다 - 나는 원래 스크립트를 수정했습니다. 여기 했나 수정 된 스크립트입니다 -

$Size = Read-Host "Enter search size" 
$folder = Read-Host "Enter full search path" 
Get-ChildItem -path $folder -recurse |Where {($_.Length -lt '$size') -and ($_.Length -gt '0')} 

그러나 지금은이 오류 - 값 "$ 크기"를 변환 할 수 없습니다 "System.Int64"를 입력 할 수 있습니다. 오류 : "입력 문자열의 형식이 올바르지 않습니다."

나는 $ 크기에 대한 크기를 정의해야한다고 생각하니?

+0

"다양한 파일의 복사본이 성공적으로 발생하지 않습니다."라는 근본적인 원인을 조사 할 것입니다. 'robocopy '는 파일을 복제 할 때 매우 유용 할 수 있습니다. –

+0

이 동의했습니다. 다른 그룹이 근본 원인을 찾고 있습니다. 저는 "댕 파일을 수정하십시오!" 사람. – Kormath

답변

0

get-childitem 명령에 스위치 "-File"을 추가하는 경우 PowerShell이 ​​'$ Size'문자열의 Size 변수 값을 대체하지 못하게하므로 where 명령에서 $ Size를 묶는 작은 따옴표를 제거하십시오. . 다음과 같이 끝내려면 where 문을 두 번째 절을 제거 할 수 있습니다.

$Size = Read-Host "Enter search size" 
$folder = Read-Host "Enter full search path" 
Get-ChildItem -File -Recurse -Path $folder | Where $_.Length -lt $Size 
+0

편집 - 탄소 오류가 있습니다. 이것은 효과가있다. 플로이드 빈센트에 감사드립니다! 그게 내가 필요한거야. – Kormath

관련 문제