我安裝了適用於 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"
此處使用引號來容納包含空格的名稱。