我有一个解压文件的问题。通常我使用PowerShell脚本,我通过SQL Server数据库(过程)运行,它会解压我的文件,我想要他们(数据库应该没有任何问题)。
脚本的主要部分:
exec '"for %i in ("'+@path+'\*.zip") do "C:\Program Files\7-Zip\7z.exe" x "%i" -o"'+@to+'""'
但偶尔会有一个.zip文件,如果运行此脚本将提取文件名编码不好的文件,为了防止这种情况,我需要手动打开每个.zip文件,并单击以在7-zip GUI中提取,这将正确返回文件名。
这种手动方式做的事情非常,非常慢。因为它需要在服务器上完成,上帝禁止,如果我在家里的VPN。所以让我们假设我有5个zip文件(3 GB),它会花我几个小时来解压。如果我这样做,通过服务器它需要像2分钟。
所以我只是想弄清楚如何用脚本解压缩它,我的脚本和手动解压缩有什么区别?
1条答案
按热度按时间jq6vz3qz1#
根本原因可能是创建文件的安装程序与windows环境的代码页不匹配。是否有任何zip文件是公开的?如果有,您能提供链接吗?
要处理这些问题文件,你需要知道文件名使用了什么编码,如果
7z
gui可以自动处理这些文件,那么必须有一个选项告诉它使用什么编码。一旦知道了编码,就可以使用
7z
中的-scs
选项来正确解码文件名。现代的zip文件没有这个问题,因为它们以UTF-8存储文件名。