Я установил GNU tar для Windows, чтобы ускорить файлы tar, чтобы мне не пришлось возиться с открытием 7zip дважды, чтобы tar затем скопировал файл.

Чтобы еще больше ускорить процесс, я попытался написать командный файл для отправки, который выглядит следующим образом:

tar -cf %1.tar.gz %1

Команда отлично работает в терминале (когда я открываю его в моем рабочем каталоге) и будет выглядеть примерно так:

tar -cf myfile.tar.gz myfile.txt

Однако, когда я запускаю командный файл send-to, в результате получается:

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 ответ1

0

Мне кажется, что tar не принимает полный путь к создаваемому архиву. Сначала вы должны изменить ваш командный файл на cd и перейти в нужную папку, например

cd "%~dp1" 

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .