CMD/BAT - [решено] Оставить рандомный файл в папках
-
MI-5
CMD/BAT - [решено] Оставить рандомный файл в папках
Добрый день. Помогите пожалуйста. Требуется рукурсивно оставить в подпапках один рандомный файл (все файды - jpg), а остальные удалить. Желательно, но не обязательно, с указанием корневой папки. То есть, указываем имя папки и изо всех подпапок удаляются все файлы кроме одного рандомного. Заранее спасибо.
-
Iska
-
MI-5
Re: CMD/BAT - [решено] Оставить рандомный файл в папках
Спасибо за PowerShell. Приду домой - попробую. Исходные файлы не нужны. Примеры нужны только чтобы залить на тот же fastpic.ru. В крайнем случае, забекаплю исходные каталоги. Просто честно не понимаю - какое значение имеет написание тут цели всех этих операций!
-
Iska
Re: CMD/BAT - [решено] Оставить рандомный файл в папках
Iska, Есть десять тысяч папок, в каждой по сто-двести файлов. Надо оставить по одному примеру изображения из каждой папки, а остальные удалить. А просматривать миллион изображений вручную нет никакого ни желания, ни времени.
-
MI-5
Re: CMD/BAT - [решено] Оставить рандомный файл в папках
MI-5, это ни о чём. Зачем в таком случае нужно вообще что-то оставлять?! Shift-Del, и дело с концом.
Пока что неубедительно.
Пока что неубедительно.
-
Iska
Re: CMD/BAT - [решено] Оставить рандомный файл в папках
Цитата MI-5:
Iska, Ну проблема у меня такая.
Цитата MI-5:
Я не пытаюсь никого ни в чём убедить - зачем мне это надо? Мне надо решить стоящую передо мной проблему - я спросил здесь.
MI-5, проблема у Вас с тем, что Вы уже выбрали решение для неизвестной задачи, каковое и озвучили. Саму задачу описывать не хотите, зачем надо — не пишете, отделываясь общими фразами.
Цитата MI-5:
Чтобы нажать Shift+Del, надо зайти в каждую из десяти тысяч папок,
Я не предлагал Вам ходить по десяти тысячам папок. Я предлагал нажать Shift-Del на головной папке, и закрыть проблему парой нажатий клавиш в целом: какая разница — оставлять по одному случайному файлу, или не оставлять вовсе.
Iska, Ну проблема у меня такая.
CMD/BAT - [решено] Оставить рандомный файл в папках
Цитата MI-5:
Я не пытаюсь никого ни в чём убедить - зачем мне это надо? Мне надо решить стоящую передо мной проблему - я спросил здесь.
CMD/BAT - [решено] Оставить рандомный файл в папках
MI-5, проблема у Вас с тем, что Вы уже выбрали решение для неизвестной задачи, каковое и озвучили. Саму задачу описывать не хотите, зачем надо — не пишете, отделываясь общими фразами.
Цитата MI-5:
Чтобы нажать Shift+Del, надо зайти в каждую из десяти тысяч папок,
CMD/BAT - [решено] Оставить рандомный файл в папках
Я не предлагал Вам ходить по десяти тысячам папок. Я предлагал нажать Shift-Del на головной папке, и закрыть проблему парой нажатий клавиш в целом: какая разница — оставлять по одному случайному файлу, или не оставлять вовсе.
-
Iska
Re: CMD/BAT - [решено] Оставить рандомный файл в папках
Я делаю раздачу на трекер. По одному файлу в каждой папке надо для примеров.
Цитата Iska:
Я предлагал нажать Shift-Del на головной папке, и закрыть проблему парой нажатий клавиш в целом: какая разница — оставлять по одному случайному файлу, или не оставлять вовсе.
Тут даже сказать нечего.
Цитата Iska:
Я предлагал нажать Shift-Del на головной папке, и закрыть проблему парой нажатий клавиш в целом: какая разница — оставлять по одному случайному файлу, или не оставлять вовсе.
CMD/BAT - [решено] Оставить рандомный файл в папках
Тут даже сказать нечего.
-
MI-5
Re: CMD/BAT - [решено] Оставить рандомный файл в папках
Цитата MI-5:
Я делаю раздачу на трекер. По одному файлу в каждой папке надо для примеров.
Предлагаю сделать иное, нежели удаление. А именно — воссоздать всю структуру каталогов в отдельном каталоге того же раздела, затем создать по одной жёсткой ссылке в каждом каталоге-дубликате на файл из оригинального каталога. Таким образом, дополнительного места эти файлы занимать не будут.
На PowerShell:
Скрытый текст
[spoiler]Код:
Каталог назначения не должен существовать[/i].
Затем можете начинать раздавать новосозданную структуру каталогов с одиночными случайными файлами.
Я делаю раздачу на трекер. По одному файлу в каждой папке надо для примеров.
CMD/BAT - [решено] Оставить рандомный файл в папках
Предлагаю сделать иное, нежели удаление. А именно — воссоздать всю структуру каталогов в отдельном каталоге того же раздела, затем создать по одной жёсткой ссылке в каждом каталоге-дубликате на файл из оригинального каталога. Таким образом, дополнительного места эти файлы занимать не будут.
На PowerShell:
Скрытый текст
[spoiler]Код:
[/spoiler]
Код: Выделить всё
$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
}
}
}Каталог назначения не должен существовать[/i].
Затем можете начинать раздавать новосозданную структуру каталогов с одиночными случайными файлами.
-
Iska
Re: CMD/BAT - [решено] Оставить рандомный файл в папках
Цитата Iska:
Таким образом, дополнительного места эти файлы занимать не будут.
Из объяснений MI-5 я понял так, у него лежит набор скриншотов из фильмов, которые он раздаёт — и ему весь этот набор и нафиг не нужен, а лишь по одному файлу как пример. И тогда после создания каталога с жёсткими ссылками можно удалить весь исходный каталог, в результате чего жесткие ссылки превратятся в исходные независимые одиночные файлы.
Таким образом, дополнительного места эти файлы занимать не будут.
CMD/BAT - [решено] Оставить рандомный файл в папках
Из объяснений MI-5 я понял так, у него лежит набор скриншотов из фильмов, которые он раздаёт — и ему весь этот набор и нафиг не нужен, а лишь по одному файлу как пример. И тогда после создания каталога с жёсткими ссылками можно удалить весь исходный каталог, в результате чего жесткие ссылки превратятся в исходные независимые одиночные файлы.

-
mwz
Re: CMD/BAT - [решено] Оставить рандомный файл в папках
mwz, всяко может быть. Про torrent удалось вытянуть токмо к седьмому сообщению. Попробуй разберись тут
. Не хочется гадать.
Цитата mwz:
И тогда после создания каталога с жёсткими ссылками можно удалить весь исходный каталог, в результате чего жесткие ссылки превратятся в исходные независимые одиночные файлы.
Ну, вот, спалили
.
. Не хочется гадать.Цитата mwz:
И тогда после создания каталога с жёсткими ссылками можно удалить весь исходный каталог, в результате чего жесткие ссылки превратятся в исходные независимые одиночные файлы.
CMD/BAT - [решено] Оставить рандомный файл в папках
Ну, вот, спалили
.