![cmd를 사용하여 파일의 압축을 푸는 방법은 무엇입니까?](https://rvso.com/image/1558697/cmd%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EC%95%95%EC%B6%95%EC%9D%84%20%ED%91%B8%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
파일을 ZIP하거나 UNZIP하는 BAT 파일을 만들고 싶습니다. 파일을 압축하기 위해 다음 질문을 찾았습니다. Windows에 내장된 파일 압축 기능만 사용하여 명령 프롬프트에서 파일을 압축할 수 있습니까?
거기에 제공된 답변은 훌륭하고 나에게 도움이 되었지만 파일의 압축을 푸는 방법에 대한 정보를 찾을 수 없었습니다. 링크에서처럼 타사 도구(winRAR 제외)는 사용할 수 없습니다.
미리 감사드리며 영어 실수로 인해 죄송합니다.
답변1
이 배치 파일 코드는 파일의 압축을 푸는 데 도움이 됩니다.
@echo off
setlocal
cd /d %~dp0
Call :UnZipFile "C:\Temp\" "c:\FolderName\batch.zip"
exit /b
:UnZipFile <ExtractTo> <newzipfile>
set vbs="%temp%\_.vbs"
if exist %vbs% del /f /q %vbs%
>%vbs% echo Set fso = CreateObject("Scripting.FileSystemObject")
>>%vbs% echo If NOT fso.FolderExists(%1) Then
>>%vbs% echo fso.CreateFolder(%1)
>>%vbs% echo End If
>>%vbs% echo set objShell = CreateObject("Shell.Application")
>>%vbs% echo set FilesInZip=objShell.NameSpace(%2).items
>>%vbs% echo objShell.NameSpace(%1).CopyHere(FilesInZip)
>>%vbs% echo Set fso = Nothing
>>%vbs% echo Set objShell = Nothing
cscript //nologo %vbs%
if exist %vbs% del /f /q %vbs%
주의C:\Temp는 추출된(UnZip) 파일이 저장되는 폴더입니다.
그리고 c:\FolderName\batch.zip은 소스 경로(Zip 파일이 저장된 위치)입니다.
필요에 따라 전체 파일 경로(드라이브, 폴더 및 Zip 파일 이름)를 변경하십시오.
답변2
Windows 10 빌드 17063 이상에서는 tar.exe
*nix와 유사하게 사용할 수 있습니다. 이는 nanoserver docker 컨테이너에서도 사용할 수 있습니다.
C:\> tar -xf archive.zip
참고: zip 지원은 잘 문서화되어 있지 않습니다.
참조:https://www.freebsd.org/cgi/man.cgi?query=bsdtar&sektion=1&manpath=FreeBSD+5.3-stable
답변3
Windows 10을 사용하는 경우 훨씬 더 짧은 Powershell을 사용할 수 있습니다.
Expand-Archive -Force C:\path\to\archive.zip C:\where\to\extract\to
답변4
ZipFile="C:\Users\spvaidya\Music\folder.zip"
ExtractTo="C:\Users\spvaidya\Music\"
'If the extraction location does not exist create it.
Set fso = CreateObject("Scripting.FileSystemObject")
If NOT fso.FolderExists(ExtractTo) Then
fso.CreateFolder(ExtractTo)
End If
'Extract the contants of the zip file.
set objShell = CreateObject("Shell.Application")
set FilesInZip=objShell.NameSpace(ZipFile).items
objShell.NameSpace(ExtractTo).CopyHere(FilesInZip)
Set fso = Nothing
Set objShell = Nothing
다음 vbscript는 file.vbs로 저장한 후 다음과 같은 배치 스크립트를 사용하여 실행할 수 있습니다.
file.vbs
이것을 .bat 파일에 저장하고 실행하십시오.