我的zip归档文件只有一个文件:
Père-Noël.txt
可以使用Windows File Explorer,7-Zip或我尝试过的任何其他工具很好地压缩zip。但是我不知道如何从PowerShell中做到这一点。显然,我尝试了Expand-Archive,但是它无法处理文件名并将其乱码为PŠre-N”el.txt
。注意:此问题并非专门针对此示例,而是与使用ASCII-127范围以外的字符的任何文件名有关。大概是这样。
任何使用PowerShell且不依赖外部工具(无法保证其存在性)的解决方案都将被接受。Windows 10是该平台。我无法进行系统级更改,也不能依赖脚本用户在系统上具有任何特定的全局设置。它必须是一个解决方案中的脚本。
除此以外,还有其他方法Expand-Archive
吗?还是PowerShell中有一个设置可以神奇地完成此操作?
在Windows 10主机上:
创建一个名为的空文件Père-Noël.txt
。
使用Windows资源管理器(“压缩文件夹”功能)将文件压缩为您选择的ZIP存档,例如myarchive.zip
。
删除Père-Noël.txt
文件。
现在尝试打开myarchive.zip
使用PowerShell的文件包。此操作应Père-Noël.txt
再次创建文件。
的确,如果ZIP最初是使用Compress-Archive
cmdlet创建的,则在使用进行解压缩时,它实际上可以按预期工作Expand-Archive
。因此,您可以说PowerShell与自身兼容。它只是与Windows资源管理器ZIP不兼容。
您可能需要检查编码,[System.Text.Encoding]::GetEncodings()
但以下示例适用Père-Noël
$zipfile = 'C:\test\Père-Noël.zip' #Contains Père-Noël.txt
$outpath = 'C:\test\out'
$enc = [System.Text.Encoding]::GetEncoding(29001) #29001, x-Europa, Europa
[System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, $outpath, $enc)
希望这可以帮助,
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句