我在 Win10 中以两种方式从目录创建 zip 文件。
第一种方法使用“右键单击...发送到...压缩(压缩)文件夹”
第二种方法使用 Powershell Compress-Archive。我想使用 Powershell 自动化这个过程。
zip 文件是要导入 Arduino IDE 的库。
第一种方法将正确导入 Arduino IDE。第二种方法无法正确导入。
现在在你说这是一个 Arduino 问题之前,请继续阅读。
因此,为了确保文件相同,我使用 Powershell 为这两个文件生成了 MD5 校验和。令我惊讶的是他们是不同的!
我发现的唯一区别是创建的 zip 文件的大小。 它们是从相同的源文件创建的。
为什么它们不同? 我可以通过文件资源管理器中的“双击并全部提取”手动解压缩这两个文件
感谢您的任何建议/帮助。约翰。
这是powershell脚本的输出......
目录:C:\file1 模式 LastWriteTime 长度名称
---- ------------- ------ ----
-a---- 05/16/2020 17: 18 1948 t_OS.zip
算法:MD5 哈希:19249C2BB9B50E827A77F7A2952EFF6D 路径:C:\file1\t_OS.zip
目录:C:\file2 模式 LastWriteTime 长度名称
---- ------------- ------ ----
-a---- 05/16/2020 19: 23 1724 t_OS.zip
算法:MD5 哈希:2BF7B111F54FC0555E6CA64719AD350F 路径:C:\file2\t_OS.zip
...
#
# sourceFiles are what I need to be zipped. It contains the
# directory t_OS and I need to create t_OS.zip
#
$sourceDir = "C:\sourceFiles"
$sourceFiles = "C:\sourceFiles\t_OS"
# file1 zip was created by right-clicking on the directory t_OS
# in the $sorceDir and selecting Send To, then
# Compressed (zipped) folder. This file was then moved to...
#
$file1 = "C:\file1\t_OS.zip"
# file2 zip is created by powershell using Compress-Archive below.
$file2 = "C:\file2\t_OS.zip"
Get-ChildItem -LiteralPath $sourceDir -Name -Recurse
If (Test-Path $file2) {Remove-Item $file2}
Compress-Archive -DestinationPath $file2 -CompressionLevel Fastest -Path $sourceFiles
Get-ItemProperty -LiteralPath $file1
Get-FileHash -Path $file1 -Algorithm MD5
Get-ItemProperty -LiteralPath $file2
Get-FileHash -Path $file2 -Algorithm MD5
...