Execute o comando “tar -cf” do arquivo em lote “send to” para o arquivo .tar.gz rapidamente

0

Eu instalei o GNU tar para windows para acelerar arquivos tar, para que eu não precise bagunça abrindo 7zip duas vezes para tar e depois gzip um arquivo.

Para acelerar ainda mais o processo, tentei escrever um arquivo de lote de envio semelhante a este:

tar -cf %1.tar.gz %1

O comando funciona bem no terminal (quando eu abri-lo no meu diretório de trabalho) e seria algo como:

tar -cf myfile.tar.gz myfile.txt

No entanto, quando eu executo o arquivo batch de envio, a entrada acaba sendo:

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

Eu recebo este erro do 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

Não tenho certeza do que está errado aqui, mas tenho certeza de que não é um problema com o tar, mas sim alguma confusão com caminhos e nomes de arquivos.

Eu queria saber se há uma maneira simples e agradável de fazer isso com um script em lote (talvez ter apenas o nome do arquivo como um argumento em vez do caminho completo) ou eu precisarei fazer algo mais elaborado?

    
por Southclaws 27.10.2014 / 18:22

1 resposta

0

Parece-me que o tar não aceita um caminho completo para o arquivo que está sendo criado. Você deve modificar seu arquivo de lote para cd para a pasta desejada primeiro, por exemplo,

cd "%~dp1" 

e, em seguida, use

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

As citações são usadas aqui para acomodar nomes com espaço.

    
por 28.10.2014 / 16:56