2016-09-10 1 views
0

안녕하십니까?Powershell에서 압축을 풀지 않고 * .zip 파일의 파일을 교체하십시오.

현재 Powershell에서 * .zip 파일 에있는 파일을 대체/삭제하는 스크립트를 만들려고 시도 중입니다..

7Zip 및 WinRAR과 같은 응용 프로그램을 사용하거나 폴더 탐색기에서 zip 아카이브를 열어 수동으로 수행 할 수도 있지만이 작업을 자동화하는 방법을 찾고 있습니다.

저는 powershell과 프로그래밍에 익숙하지 않기 때문에 어떤 예비 코드도 나오지 않습니다. 나는 인터넷에서 답을 찾으려고 노력했지만, 나를 위해 일하는 것을 찾지 못했습니다.

질문은 다음과 같습니다.
Photos (Photos.zip)라는 zip 아카이브가 있습니다. 아카이브는 5 개의 이미지를 포함합니다. Powershell에서 이미지를 추출하지 않고 Photos.zip에서 이미지를 바꾸거나 삭제하려면 어떻게합니까?

유용한 자료에 대한 모든 코드/아이디어/링크는 높이 평가됩니다.

+2

그것은 복잡합니다. ZipArchive 클래스 또는 IO.Packaging.ZipPackage를 수동으로 사용하십시오. [PowerShell로 zip 아카이브를 만드는 방법은 무엇입니까?] (https://stackoverflow.com/q/1153126) 및 [메모리에 zip 파일 내용을 조작하는 방법이 있습니까? Powershell?] (https://stackoverflow.com/a/25154506) – wOxxOm

답변

0

나는 다음 용액을 사용했다.

가 우선이 코드를 사용하여 임시 폴더에 아카이브에서 오래된 파일을 이동 :
#Path to the folder with a new file 
$pathToFolderWithNewFile = "C:\...\New Images\My New Image.jpeg" 
#Path to a folder in the archive where the new file will be copied to 
$pathToFolderInArchive = "C:\...\Photos.zip\My Photos" 
(New-Object -COM Shell.Application).NameSpace("$pathToFolderInArchive").CopyHere("$pathToFolderWithNewFile") 

마지막으로 제가 삭제 : 다음

#Path to the temporary folder 
$pathToTemporaryFolder = "C:\...\Temporary" 
#Path to a file that will be moved from the archive to the temporary folder 
$pathToFileToBeMoved = "C:\...\Photos.zip\My Photos\My Image.png" 
(New-Object -COM Shell.Application).NameSpace("$pathToTemporaryFolder").MoveHere("$pathToFileToBeMoved") 

을, 나는 아카이브에 새로운 파일을 복사 임시 폴더

Remove-Item -Path "C:\...\Temporary" -Recurse 

이렇게하면 아카이브에서 파일을 삭제하고 새로운 fi 압축을 풀거나 풀지 않고