Windows下tar命令如何用通配符提取未知名称的归档文件?
Windows命令行用tar通配符提取归档文件的解决方法
核心问题原因
你加引号的写法tar -xf "*-archive.zip"之所以无效,是因为Windows命令行(cmd)会把带引号的通配符字符串直接原封不动传给tar命令,而tar本身不负责解析通配符,它会把*-archive.zip当成精确文件名去查找,自然匹配不到目标文件。
具体解决办法
1. 直接使用无引号的通配符(适用于文件名无空格的情况)
直接执行:
tar -xf *-archive.zip
此时cmd会先把通配符*-archive.zip展开成所有符合模式的文件名列表,再传给tar,tar就能逐个提取这些归档文件。
2. 用for循环处理带空格的文件名
如果目标归档文件的名字包含空格,上面的方法会出错,这时可以用cmd的for循环遍历匹配文件:
for %f in (*-archive.zip) do tar -xf "%f"
这里%f是循环变量,会依次指代每个符合*-archive.zip模式的文件,加引号可以确保带空格的文件名被正确识别。
3. PowerShell环境下的写法
如果你用的是PowerShell,两种方式都可行:
- 直接使用通配符:
tar -xf *-archive.zip - 或者用管道遍历处理:
Get-ChildItem *-archive.zip | ForEach-Object { tar -xf $_.FullName }
内容的提问来源于stack exchange,提问作者Ebig
相关产品推荐
相关产品推荐

