Python 如何在powershell中使用树来压缩文件
我希望为已经压缩的文件使用一个命令行脚本,甚至是一个用于树型函数的python编码脚本。我将文件刻录到光盘上,并根据工作需要完成它们。有些文件需要压缩以便传输 当使用“Tree/f/a”时,我会得到一个很好的文件输出,但是如果光盘上有压缩文件,它不会分解压缩文件中的内容。我看不到任何其他树的修改器,可以树出一个压缩文件。有人知道我可以通过管道(或帮助我用python或C构建脚本)生成目录树并在该目录中生成压缩文件吗 我不擅长编码,所以请原谅我在编码方面的新手能力。我知道python代码必须将目录拉出来,将其树状化。当它找到一个zip文件时,需要一些“if”和“when”语句来解压文件,并将文件树出来。然后继续处理目录中的下一个文件,直到所有文件都被树化 这些文件总是放在一张已定稿/已关闭的光盘上,所以我甚至不确定是否可以解压一个文件以对其进行树状分类。更不用说把拉链拉起来了?任何帮助都将不胜感激。谢谢 通常我这样做是为了在光盘托盘中对光盘进行树状分类,但它不会对压缩文件进行树状分类。我总是将树输出到一个.txt文件中,以供审阅和文件传输存档Python 如何在powershell中使用树来压缩文件,python,powershell,tree,zip,Python,Powershell,Tree,Zip,我希望为已经压缩的文件使用一个命令行脚本,甚至是一个用于树型函数的python编码脚本。我将文件刻录到光盘上,并根据工作需要完成它们。有些文件需要压缩以便传输 当使用“Tree/f/a”时,我会得到一个很好的文件输出,但是如果光盘上有压缩文件,它不会分解压缩文件中的内容。我看不到任何其他树的修改器,可以树出一个压缩文件。有人知道我可以通过管道(或帮助我用python或C构建脚本)生成目录树并在该目录中生成压缩文件吗 我不擅长编码,所以请原谅我在编码方面的新手能力。我知道python代码必须将目录
“tree/f/a d:/>c:/filetransfer/transfer/“date”/transfer.txt”好的,下面是一段非常基本的代码,它将在PowerShell中对内容进行树化。它当然可以使用一些润色来绘制树所做的所有漂亮线条,但它至少可以扩展zip文件
Add-Type -assembly "system.io.compression.filesystem"
Function Tree-Path($Path){
(' - '*($Path.Split('\/').Count -1))+$Path.Split('\/')[-1]
}
Function Tree-ZipFile($ZipFilePath){
$ZipFile = [io.compression.zipfile]::OpenRead($ZipFilePath)
$ZipFile.Entries.FullName|Group {($_ -replace '/[^/]+$').TrimEnd('/')}|%{
Tree-Path ("$ZipFilePath\"+$_.Name)
$_.Group|Select -skip 1|%{Tree-Path "$ZipFilePath\$_"}
}
$ZipFile.Dispose()
}
GCI D:\ -Recurse|% -begin {$_.Parent} -process {
If($_.Extension -eq '.zip'){
Tree-Path $_.FullName
Tree-ZipFile $_.FullName
}Else{
Tree-Path $_.FullName
}
}
使用
system.io.compression.filesystem
类型,您完全可以在PowerShell中读取zip文件的内容,但是将其转换为树格式听起来需要做的工作太多了。[system.io.compression.ZipFile]::OpenRead('ZipFile.zip')。Entries.FullName
(PowerShell 6+)。感谢您的代码和建议。我绝对不会编写这样的代码,也不知道从哪里开始。我在房子的安全方面,所以我对这个领域不太了解。我们运行独立的系统,任何有帮助的东西都是值得花时间的,而不是手动在纸上分别为系统中传输的每一条数据阻塞文件路径。我将看看是否可以实现此代码,如果有任何问题,我将联系您。老实说,您最好运行Get ChildItem D:\-Recurse |%FullName
,这将为您提供驱动器上所有内容的完整路径。@MadTechnician,您的命令不会深入到zip文件,这是问题的重点。