Как удалить повторяющийся файл в архивах?
Добрый день! Имеется список архивов, в каждом из которых повторяется один файл readme.txt
Как можно автоматически удалить во всех архивах данный файл?
|
Имеется в виду, что имеется папка, в которой лежат файлы архивов. В каждом из этих архивов есть одинаковый файл, который и необходимо убрать в автоматическом режиме.
|
Цитата:
Цитата Medvedoc
имеется папка, в которой лежат файлы архивов »
|
Какой формат архивов? Какой архиватор допустим для использования? Что в архиве: файлы в папках и подпапках, или просто файлы без путей?
|
примерно так
Код:
function Delete-From-Zip ([array]$paths) {
begin {
Add-Type -AssemblyName 'System.IO.Compression'
$enum_fmode = [System.IO.FileMode]::Open
$enum_zupdate = [System.IO.Compression.ZipArchiveMode]::Update
}
process {
$zip = [string]$_
try {
$fs = New-Object 'System.IO.FileStream' $zip, $enum_fmode
$arc = New-Object 'System.IO.Compression.ZipArchive' $fs, $enum_zupdate
$paths | foreach {
if ($entry = $arc.GetEntry($_)) {
try { $entry.Delete(); $_ + ' deleted from ' + $zip }
catch { Write-Warning ($_ + ' not deleted from ' + $zip) }
}
else { Write-Warning ($_ + ' not found in ' + $zip) }
}
} catch {
Write-Warning ('can''t open ' + $zip)
} finally {
if ($arc -ne $null) { $arc.Dispose() }
if ($fs -ne $null) { $fs.Dispose() }
}
}
}
'd:\1.zip', 'd:\2.zip' | Delete-From-Zip 'file\to\delete', 'another\file'
|
megaloman, формат архивов .zip
использую 7-zip в основном, но есть winRar
в каждом архиве лежит по 2 файла:
1. рандомный текст.txt
2. readme.txt
вот этот второй файл в каждом архиве автономно и нужно удалить
Sham, я так понимаю это на javascript написано? Просто файлы у меня локально лежат
|
Код:
@Echo Off
cls
Set "BoxIn=Z:\Box_In"
Set "Mask=*.zip"
Set "FileDel=readme.txt"
Set "Arc="C:\Program Files\WinRAR\WinRAR.exe" D"
Pushd %BoxIn% &&(
FOR /F "usebackq delims=" %%i IN (`2^>nul Dir "%Mask%" /B /A:-D`) DO (
%Arc% "%%i" "%FileDel%"
)
Popd
)
Pause
Exit /B
|
megaloman, не срабатывает. Положил батник в ту же папку где и архивы, но никакого результата.
Z:\Box_In - я так понимаю путь где лежат архивы?
а не, сработало =) просто путь неправильно был прописан =) Большое спасибо
|
Время: 08:28.
© OSzone.net 2001-