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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Оставить рандомный файл в папках

Ответить
Настройки темы
CMD/BAT - [решено] Оставить рандомный файл в папках

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


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

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


Добрый день. Помогите пожалуйста. Требуется рукурсивно оставить в подпапках один рандомный файл (все файды - jpg), а остальные удалить. Желательно, но не обязательно, с указанием корневой папки. То есть, указываем имя папки и изо всех подпапок удаляются все файлы кроме одного рандомного. Заранее спасибо.

Отправлено: 08:54, 02-01-2018

 

Ветеран


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

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


MI-5, глубинный смысл сего действа?

Отправлено: 09:05, 02-01-2018 | #2



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

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


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


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

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


Iska, Есть десять тысяч папок, в каждой по сто-двести файлов. Надо оставить по одному примеру изображения из каждой папки, а остальные удалить. А просматривать миллион изображений вручную нет никакого ни желания, ни времени.

Отправлено: 09:16, 02-01-2018 | #3


Ветеран


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

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


MI-5, это ни о чём. Зачем в таком случае нужно вообще что-то оставлять?! Shift-Del, и дело с концом.

Пока что неубедительно.

Отправлено: 09:56, 02-01-2018 | #4


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


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

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


Iska, Ну проблема у меня такая. Надо мне оставить один файл в каждой подпапке. Чтобы нажать Shift+Del, надо зайти в каждую из десяти тысяч папок, нажать Ctrl+A, а потом снять выделение с одного файла, а уж только после всего этого нажать Shift+Del. Это то же самое, что вручную просмотреть все эти папки. Я не пытаюсь никого ни в чём убедить - зачем мне это надо? Мне надо решить стоящую передо мной проблему - я спросил здесь.

Я нашёл решение, позволяющее переместить рандомный файл из папки в другую папку: mix2stix. Но это не рекурсивно и мне надо в дальнейшем каждый оставшийся файл переименовать в название родительского каталога. Но это уже в дальнейшем вручную будет. Сейчас же вопрос стоит как оставить один файл в папке.

Отправлено: 10:02, 02-01-2018 | #5


Ветеран


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

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


Цитата MI-5:
Iska, Ну проблема у меня такая. »
Цитата MI-5:
Я не пытаюсь никого ни в чём убедить - зачем мне это надо? Мне надо решить стоящую передо мной проблему - я спросил здесь. »
MI-5, проблема у Вас с тем, что Вы уже выбрали решение для неизвестной задачи, каковое и озвучили. Саму задачу описывать не хотите, зачем надо — не пишете, отделываясь общими фразами.

Цитата MI-5:
Чтобы нажать Shift+Del, надо зайти в каждую из десяти тысяч папок, »
Я не предлагал Вам ходить по десяти тысячам папок. Я предлагал нажать Shift-Del на головной папке, и закрыть проблему парой нажатий клавиш в целом: какая разница — оставлять по одному случайному файлу, или не оставлять вовсе.

Отправлено: 10:38, 02-01-2018 | #6


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


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

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


Я делаю раздачу на трекер. По одному файлу в каждой папке надо для примеров.
Цитата Iska:
Я предлагал нажать Shift-Del на головной папке, и закрыть проблему парой нажатий клавиш в целом: какая разница — оставлять по одному случайному файлу, или не оставлять вовсе. »
Тут даже сказать нечего.

Отправлено: 10:48, 02-01-2018 | #7


Ветеран


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

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


Цитата MI-5:
Я делаю раздачу на трекер. По одному файлу в каждой папке надо для примеров. »
Предлагаю сделать иное, нежели удаление. А именно — воссоздать всю структуру каталогов в отдельном каталоге того же раздела, затем создать по одной жёсткой ссылке в каждом каталоге-дубликате на файл из оригинального каталога. Таким образом, дополнительного места эти файлы занимать не будут.

На PowerShell:
Скрытый текст
Код: Выделить весь код
$sSourceFolder = 'C:\Мои проекты\0142'
$sDestFolder   = 'C:\Мои проекты\0143'

if(Test-Path -Path $sSourceFolder -PathType Container) {
    @(Get-Item -Path $sSourceFolder) + (Get-ChildItem -Path $sSourceFolder -Directory -Recurse) | `
        ForEach-Object -Process {
            $cFiles = $_.GetFiles()
            
            if($cFiles.Count -gt 0) {
                $sNewFolder = $_.FullName.Replace($sSourceFolder, $sDestFolder)
                $oNewFolder = New-Item -ItemType Directory -Path (Split-Path -Path $sNewFolder -Parent) -Name (Split-Path -Path $sNewFolder -Leaf)
                
                $oFile = $cFiles[$(Get-Random -Maximum ($cFiles.Count - 1))]
                New-Item -ItemType HardLink -Path $sNewFolder -Name $oFile.Name -Value $oFile.FullName | Out-Null
            }
        }
}
Каталог назначения не должен существовать.

Затем можете начинать раздавать новосозданную структуру каталогов с одиночными случайными файлами.

Последний раз редактировалось Iska, 02-01-2018 в 12:20.

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

Отправлено: 12:14, 02-01-2018 | #8

mwz mwz вне форума

Аватара для mwz

Ушел из жизни


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

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


Цитата Iska:
Таким образом, дополнительного места эти файлы занимать не будут. »
Из объяснений MI-5 я понял так, у него лежит набор скриншотов из фильмов, которые он раздаёт — и ему весь этот набор и нафиг не нужен, а лишь по одному файлу как пример. И тогда после создания каталога с жёсткими ссылками можно удалить весь исходный каталог, в результате чего жесткие ссылки превратятся в исходные независимые одиночные файлы.

-------
Mikhail Zhilin


Отправлено: 12:41, 02-01-2018 | #9


Ветеран


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

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


mwz, всяко может быть. Про torrent удалось вытянуть токмо к седьмому сообщению. Попробуй разберись тут . Не хочется гадать.

Цитата mwz:
И тогда после создания каталога с жёсткими ссылками можно удалить весь исходный каталог, в результате чего жесткие ссылки превратятся в исходные независимые одиночные файлы. »
Ну, вот, спалили .

Отправлено: 13:21, 02-01-2018 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Оставить рандомный файл в папках

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] скрипт, который создаст текстовый файл и запишет в него инфу о всех папках daniil_im Скриптовые языки администрирования Windows 1 19-09-2017 19:08
CMD/BAT - [решено] Рандомный VolumeID Freem Скриптовые языки администрирования Windows 8 05-01-2016 16:26
CMD/BAT - [решено] Переименовать каждый первый файл в папках MI-5 Скриптовые языки администрирования Windows 4 22-12-2015 19:18
CMD/BAT - [решено] Вывод в файл имен последних файлов в папках ivanxam Скриптовые языки администрирования Windows 2 01-10-2013 13:26
CMD/BAT - Рандомный запуск на CMD AlexPebody Скриптовые языки администрирования Windows 3 30-08-2013 10:25




 
Переход