|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление одинаковых файлов по размеру |
|
|
CMD/BAT - [решено] Удаление одинаковых файлов по размеру
|
Пользователь Сообщения: 72 |
Профиль | Отправить PM | Цитировать
Добрый день, нужен батник который сравнивал и удалял одинаковые по размеру файлы в одной папке (и оставлял только один).
Сторонние программы не хочу использовать, нужно именно bat. |
|
Отправлено: 10:41, 16-07-2011 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Arsenik77:
@( pushd "C:\TEST" for /f "delims=" %%f in ('dir/b/a-d/os') do @( if defined $fz (set/a "$fc=$fz-%%~zf" call set "$fc=%%$fc:0=%%" if not defined $fc del "%%f") set "$fz=%%~zf")) |
|
Отправлено: 12:59, 18-07-2011 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 72
|
Профиль | Отправить PM | Цитировать Iska, А можете сделать log файл, сколько файлов было удалено??
Скрипт отлично работает, большое спасибо!! |
Отправлено: 17:04, 18-07-2011 | #22 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Arsenik77:
Option Explicit ' IOMode Enum Const ForReading = 1 Const ForWriting = 2 Const ForAppending = 8 ' Format Enum Const TristateUseDefault = -2 Const TristateTrue = -1 Const TristateFalse = 0 Dim objFSO Dim strFolder Dim objFile Dim objDictionary Dim elem Dim objTS If WScript.Arguments.Count = 1 Then Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") strFolder = WScript.Arguments.Item(0) If objFSO.FolderExists(strFolder) Then Set objTS = objFSO.OpenTextFile( _ objFSO.BuildPath( _ objFSO.GetParentFolderName(WScript.ScriptFullName), _ objFSO.GetBaseName(WScript.ScriptFullName) & ".log" _ ), ForAppending, True, TristateTrue) objTS.WriteLine objTS.WriteLine FormatDateTime(Now()) objTS.WriteLine Set objDictionary = WScript.CreateObject("Scripting.Dictionary") For Each objFile In objFSO.GetFolder(strFolder).Files If objDictionary.Exists(objFile.Size) Then objTS.WriteLine objFile.Path objFSO.DeleteFile objFile.Path, True Else objDictionary.Add objFile.Size, objFile.Path End If Next objDictionary.RemoveAll Set objDictionary = Nothing objTS.Close Set objTS = Nothing Else WScript.Echo "Folder [" & strFolder & "] not found." End If Set objFSO = Nothing Else WScript.Echo "Usage: " & WScript.ScriptName & " <folder>" End If WScript.Quit 0 P.S. Или имена Вам не важны, а нужно именно количество удалённых файлов? |
|
Отправлено: 08:35, 19-07-2011 | #23 |
Пользователь Сообщения: 72
|
Профиль | Отправить PM | Цитировать |
Отправлено: 06:27, 20-07-2011 | #24 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Примерно так:
Цитата Arsenik77:
|
|
Отправлено: 06:59, 20-07-2011 | #25 |
Пользователь Сообщения: 72
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Последний раз Ваш скрипт обработал 330 тыщ.файлов, удалив порядка 160 тыщи файлов. Хотя если можно то ее можно оставить, включая или отключая её через ключ (параметр). Можно добавить в логе писал: Total delete: YY file(s) из XXX файлов. Цитата Iska:
|
||
Последний раз редактировалось Arsenik77, 20-07-2011 в 10:25. Отправлено: 09:24, 20-07-2011 | #26 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Arsenik77:
|
|
Отправлено: 13:06, 20-07-2011 | #27 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Arsenik77, сделал:
Приведённый код сохранить в файл с расширением «.wsf» в кодировке ANSI (Windows-1251). |
Отправлено: 04:53, 08-08-2011 | #28 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Удаление одинаковых файлов | Tonny_Bennet | Программирование в *nix | 3 | 14-12-2010 16:44 | |
CMD/BAT - Удаление старых файлов по имени файлов | Bиктор | Скриптовые языки администрирования Windows | 1 | 19-04-2010 03:37 | |
CMD/BAT - [решено] Удаление одинаковых подпапок из родительской папки | D_Master | Скриптовые языки администрирования Windows | 2 | 28-03-2009 15:08 | |
удаление одинаковых папок в под папках | clop1000 | Хочу все знать | 5 | 17-11-2007 00:51 | |
Поиск одинаковых файлов | Geo55 | Программное обеспечение Windows | 6 | 23-10-2004 10:01 |
|