我有多个zip文件,我想解压缩并将其内容连接到一个文件。我不需要这些解压缩文件中的每一个,因此如果可能的话,它们永远不会被创建。
我需要在PowerShell中执行此操作,并且只能访问2.0版。
目前使用7zip执行解压缩。如果我在没有尝试连接输出的情况下进行解压缩,我最终会使用以下命令获取所有提取的文件。
<script type="text/javascript">
$(function () {
/*// Typeahead
var a = $.parseJSON('<?php //echo json_encode( $groups); ?>');
$('#query').typeahead({
local: a
});*/
});
</script>
尝试通过以下命令连接所有文件,但我仍然最终得到所有提取的文件,combined.txt文件包含重复的以下文本。请指教。谢谢。
# all the zip files (10000 of them)
$logs = Get-ChildItem $folders[$i] -filter "*$stake).zip"
foreach ($log in $logs) {
Write-Host $log
& '7z' e $log
}
正在重复的文字
7-Zip [64] 16.04:Copyright(c)1999-2016 Igor Pavlov:2016-10-04
扫描驱动器以获取存档:1个文件,7796个字节(8 KiB)
提取存档:0000_0000_0000游戏日志(名称为86%赌注 25).ZIP - 路径= 0000_0000_0000游戏日志(名称为86%赌注25).zip Type = zip物理尺寸= 7796
进一步澄清:
我有10000个zip文件。 在提取时,每个文件内容=&#34; Hello&#34;。
我想将所有这些文件内容连接成一个单独的文件。
因此单个文件内容将是 -
# all the zip files (10000 of them)
$logs = Get-ChildItem $folders[$i] -filter "*$stake).zip"
foreach ($log in $logs) {
Write-Host $log
& '7z' e $log >> combined.txt
}
我想要的只是这个具有连接数据的单个文件。
答案 0 :(得分:2)
需要提取AFAIK ZIP文件才能阅读。即使在ZIP浏览器的情况下,当你打开&#34;文件中的文件首先被提取到临时位置。
这基本上就是你需要做的事情:
$logs = Get-ChildItem $folders[$i] -filter "*$stake).zip"
New-Item -Name "Temp" -ItemType Directory
$output = @()
foreach ($log in $logs) {
Write-Host $log
& '7z' e $log -o"Temp" | Out-Null
Get-ChildItem "Temp" | Foreach-Object {
$output += Get-Content $_.FullName
Remove-Item $_
}
}
Remove-Item "Temp"
$output | Out-File "FullLog.txt"
这会遍历每个文件,将其解压缩(忽略7zip的输出,因为它仅提供信息),读取提取文件的内容然后删除它。之后它会清理并将总输出写入文件。