Быстро выполнить команду «tar -cf» из пакетного файла «send to» в файл .tar.gz

Быстро выполнить команду «tar -cf» из пакетного файла «send to» в файл .tar.gz

Я установилGNU tar для Windowsдля ускорения сжатия файлов, чтобы мне не приходилось дважды открывать 7zip, чтобы заархивировать файл, а затем сжать его с помощью 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 "%~dp1" 

а затем использовать

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

Кавычки здесь используются для обозначения имен, содержащих пробелы.

Связанный контент