2017-05-05 4 views
0

내가 디렉토리에 일부 파일을 압축 해제하도록되어 PowerShell 스크립트를 거부,하지만 난 그것을 실행할 때이 오류가 발생합니다 : 나는 각각의 폴더에 자신에게 모든 권한을 준PowerShell을 압축 풀기 액세스

Exception calling "ExtractToDirectory" with "2" argument(s): "Access to the path 
'E:\SubFolder\SubFolder2\SubFolder3' is denied." 
At line:7 char:5 
+  [System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, "E:\SubFolder\Sub ... 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (:) [], MethodInvocationException 
    + FullyQualifiedErrorId : UnauthorizedAccessException 

(테스트하기 위해) 관리자로 실행하면 오류가 발생합니다. 여기

내 코드입니다

Add-Type -AssemblyName System.IO.Compression.FileSystem 

function Unzip 
{ 
    param([string]$zipfile) 

    [System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, "E:\SubFolder\SubFolder2\SubFolder3") 

} 

$Files = get-childitem "E:\SubFolder\SubFolder2\SubFolder3" 

foreach ($i in $files) 
{ 
    Unzip "SubFolder\SubFolder2\SubFolder3\$i" 
} 

누군가가이 작업을 얻을 수있는 올바른 방향으로 날 지점 수 있을까요?

+1

에 압축 해제 함수를 호출 할 때 인수를 변경 제안 'Get-ChildItem'에'Where' 절을 추가합니다 :'get-childitem "E : \ SubFolder \ SubFolder2 \ SubFolder3"| Where {$ _. Extension -eq ".zip"} ' – dbso

+0

그 트릭을 완료했습니다. 아래에 귀하의 답변을 게시하고 동의합니다. 감사! – Cornflake2068

답변

1

Get-ChildItem

Get-ChildItem "E:\SubFolder\SubFolder2\SubFolder3" | Where { $_.Extension -eq ".zip" } 

Where 추가 나는 또한 오류를 복제하지만 어쩌면 시도 할 수 아니에요

Unzip $i.FullName

+0

'Get-ChildItem "E : \ SubFolder \ SubFolder2 \ SubFolder3 \ *. zip"도 작동합니다. – JosefZ