下载了254个zip的文件,需要进行解压,比较奇特的是这些文件并无单独的一级目录结构,否则批量选中全部解压即可,没有这些选项就只能写个脚本循环解压,效果还是很好的。
7z的命令还是很友好的,当然这里是windows下的操作,不太合适直接使用unzip等命令。
<?php
//more @see https://github.com/loveyu/BlogCodeSegment/blob/master/GEO/gadm/unzip/unzip.php
if(!isset($argv[2]) || empty($argv[2])) {
die("Error argv.");
}
$data_dir = $argv[1];
$output_dir = $argv[2];
if(!is_dir($data_dir) || empty($output_dir) || !is_dir($output_dir)) {
die("Error dir.");
}
$list = glob("{$data_dir}/*.zip");
foreach($list as $file) {
$out = $output_dir.DIRECTORY_SEPARATOR.pathinfo(basename($file), PATHINFO_FILENAME);
$exe_file = EXE_7zip;
$unzip_cmd = ""{$exe_file}" x "{$file}" -y -o"{$out}"";
system($unzip_cmd);
}
//more @see https://github.com/loveyu/BlogCodeSegment/blob/master/GEO/gadm/unzip/unzip.php
if(!isset($argv[2]) || empty($argv[2])) {
die("Error argv.");
}
$data_dir = $argv[1];
$output_dir = $argv[2];
if(!is_dir($data_dir) || empty($output_dir) || !is_dir($output_dir)) {
die("Error dir.");
}
$list = glob("{$data_dir}/*.zip");
foreach($list as $file) {
$out = $output_dir.DIRECTORY_SEPARATOR.pathinfo(basename($file), PATHINFO_FILENAME);
$exe_file = EXE_7zip;
$unzip_cmd = ""{$exe_file}" x "{$file}" -y -o"{$out}"";
system($unzip_cmd);
}
最终输出形式如:
7-Zip 17.00 beta (x64) : Copyright (c) 1999-2017 Igor Pavlov : 2017-04-29 Scanning the drive for archives: 1 file, 374721 bytes (366 KiB) Extracting archive: H:\IDM\GeoDataAdmAll\ZWE_adm_shp.zip -- Path = H:\IDM\GeoDataAdmAll\ZWE_adm_shp.zip Type = zip Physical Size = 374721 Everything is Ok Files: 19 Size: 971938 Compressed: 374721
当前还没有任何评论