"send to" 배치 파일에서 .tar.gz 파일로 빠르게 "tar -cf" 명령을 실행합니다.

"send to" 배치 파일에서 .tar.gz 파일로 빠르게 "tar -cf" 명령을 실행합니다.

나는 설치했다Windows용 GNU tar파일 tar링 속도를 높이려면 7zip을 두 번 열어 tar를 연 다음 파일을 gzip으로 압축할 필요가 없습니다.

프로세스 속도를 더욱 높이기 위해 다음과 같은 보내기 배치 파일을 작성하려고 했습니다.

tar -cf %1.tar.gz %1

이 명령은 터미널에서 제대로 작동하며(작업 디렉토리에서 열 때) 다음과 같습니다.

tar -cf myfile.tar.gz myfile.txt

그러나 보내기 배치 파일을 실행하면 입력이 다음과 같이 종료됩니다.

tar -cf C:\path\to\myfile.txt.tar.gz C:\path\to\myfile.txt

tar에서 다음 오류가 발생합니다.

C:\path\to\my>tar -cf C:\path\to\my\myfile.txt.tar.gz C:\path\to\my\myfile.txt
tar: Cannot open C:\path\to\my\myfile.txt.tar.gz: Function not implemented
tar: Error is not recoverable: exiting now

여기서 무엇이 잘못되었는지는 잘 모르겠지만 tar의 문제가 아니라 경로 및 파일 이름과의 혼동이 확실합니다.

배치 스크립트를 사용하여 이 작업을 수행할 수 있는 훌륭하고 간단한 방법이 있는지 궁금합니다(전체 경로가 아닌 파일 이름만 인수로 가져올 수도 있음). 아니면 좀 더 정교한 작업을 수행해야 합니까?

답변1

tar는 생성되는 아카이브에 대한 전체 경로를 허용하지 않는 것 같습니다. 먼저 원하는 폴더로 CD를 이동하도록 배치 파일을 수정해야 합니다. 예:

cd "%~dp1" 

그런 다음 사용

tar -cf "%~n1.tar.gz" "%~nx1"

여기서는 공백이 포함된 이름을 수용하기 위해 따옴표를 사용합니다.

관련 정보