从“发送到”批处理文件中执行“tar -cf”命令快速将文件解压为 .tar.gz

从“发送到”批处理文件中执行“tar -cf”命令快速将文件解压为 .tar.gz

我安装了适用于 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"

此处使用引号是为了适应包含空格的名称。

相关内容