Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Как удалить повторяющийся файл в архивах?

Ответить
Настройки темы
Любой язык - Как удалить повторяющийся файл в архивах?

Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день! Имеется список архивов, в каждом из которых повторяется один файл readme.txt
Как можно автоматически удалить во всех архивах данный файл?

Отправлено: 14:02, 22-07-2021

 

Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Имеется в виду, что имеется папка, в которой лежат файлы архивов. В каждом из этих архивов есть одинаковый файл, который и необходимо убрать в автоматическом режиме.

Отправлено: 17:15, 22-07-2021 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Цитата Medvedoc:
имеется папка, в которой лежат файлы архивов »
Какой формат архивов? Какой архиватор допустим для использования? Что в архиве: файлы в папках и подпапках, или просто файлы без путей?

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:26, 22-07-2021 | #3


Deadooshka


Сообщения: 2517
Благодарности: 692

Профиль | Отправить PM | Цитировать


примерно так
Код: Выделить весь код

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'

Отправлено: 17:28, 22-07-2021 | #4


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


megaloman, формат архивов .zip
использую 7-zip в основном, но есть winRar
в каждом архиве лежит по 2 файла:
1. рандомный текст.txt
2. readme.txt

вот этот второй файл в каждом архиве автономно и нужно удалить

Sham, я так понимаю это на javascript написано? Просто файлы у меня локально лежат

Отправлено: 17:38, 22-07-2021 | #5


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@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

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:03, 22-07-2021 | #6


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


megaloman, не срабатывает. Положил батник в ту же папку где и архивы, но никакого результата.
Z:\Box_In - я так понимаю путь где лежат архивы?

а не, сработало просто путь неправильно был прописан Большое спасибо

Отправлено: 18:11, 22-07-2021 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Как удалить повторяющийся файл в архивах?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - как удалить неудаляемый файл? Ingolder Скриптовые языки администрирования Windows 8 11-10-2013 20:17
Как удалить повторяющийся звук? Morpheus Видео и аудио: обработка и кодирование 11 15-10-2011 00:07
Разное - Как удалить файл? Stefanov Microsoft Windows Vista 8 23-03-2008 13:48
Как удалить файл??? Kasap Вебмастеру 17 12-10-2004 09:51
Как в С++ из программы удалить файл Guest Программирование и базы данных 5 29-03-2004 18:07




 
Переход