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

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

Ответить
Настройки темы
CMD/BAT - Распределение артов в папки по 10 штук

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


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

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


Нужен батник, который будучи помещенным в папку с артами, начнет создавать папки и наполнять их артами по 10 штук. т.е. в папке с батником 100 картинок, после запуска скрипта должно остаться 10 папок по 10 артов в каждом.

Отправлено: 00:14, 12-01-2020

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Что такое арты?

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 08:21, 12-01-2020 | #2



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

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


Ветеран


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

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


Цитата st3r:
с артами »
Каких калибров?


Цитата st3r:
создавать папки »
По какому принципу формируются имена?

Цитата st3r:
по 10 штук »
По какому принципу отбираются «по 10 из 100»?

На PowerShell (проверялось на 5.1; каталоги создаются нумерованные, тупо из 4 символов; имена берутся по порядку и никак не сортируются):
Скрытый текст
Код: Выделить весь код
$sSourceFolder = 'C:\Мои проекты\0294\Source'
$iGroupCount   = 10

$aFileInfo = Get-ChildItem -Path "$sSourceFolder\*" -Include '*.jpg', '*.png', '*.bmp', '*.gif' -File

if($aFileInfo.Count -gt 0) {
    $i =  0
    
    do {
        $sDestFolder = [System.IO.Path]::Combine($sSourceFolder, ([System.Int32]($i / $iGroupCount + 1)).ToString("0000"))
    
        if(-not [System.IO.Directory]::Exists($sDestFolder)) {
            [System.IO.Directory]::CreateDirectory($sDestFolder) | Out-Null
        }

        Write-Host "[$sDestFolder]" -ForegroundColor Yellow

        ($aFileInfo[$i..[Math]::Min($aFileInfo.Count - 1, $i + $iGroupCount)]).ForEach({
            $_.MoveTo("$sDestFolder\$($_.Name)")
            Write-Host "`t$($_.Name)" -ForegroundColor Cyan
        })

        $i = $i + $iGroupCount
    } while($i -lt $aFileInfo.Count)
} else {
    Write-Warning 'Nothing found.'
}

Отправлено: 08:52, 12-01-2020 | #3


Ветеран


Contributor


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

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


CMD. Каталоги создаются нумерованные, тупо из 4 символов; файлы берутся по порядку, сначала более старые.
Код: Выделить весь код
@Echo Off
	Set /A Portion=10
	Set "Exclude=bat cmd xls "xlsm" txt"
	
	Set /A ND=10000
	Set /A NF=0

	FOR /F "usebackq delims=" %%f IN (`2^>nul Dir *.* /B /O:D /A:-D`) Do Call :MyMove "%%f"
Exit /B

:MyMove
	For %%e In (%Exclude%) Do If /I ".%%~e"=="%~x1" Exit /B 1
	If Not %NF% EQU 0 GoTo :Cont
		:Begin
			Set /A ND+=1
			If Exist "%ND:~1%" GoTo :Begin 
		Md "%ND:~1%" 
	:Cont
	Set /A NF+=1
	>NUL Move "%~1" "%ND:~1%\"
	If %NF% EQU %Portion% Set /A NF=0 	
Exit /B
обрабатываются все файлы в папке, где расположен командный файл, кроме тех, расширение которых совпадают с указанными в списке (естественно, Вы его должны уточнить):

Set "Exclude=bat cmd xls "xlsm" txt"

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


Последний раз редактировалось megaloman, 13-01-2020 в 13:07.


Отправлено: 17:40, 12-01-2020 | #4



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Статистика AdDuplex за сентябрь 2017 показала распределение версий Windows 10 OSZone News Новости и события Microsoft 0 27-09-2017 11:30
2010 - [решено] распределение по столбцам Elizavetta Microsoft Office (Word, Excel, Outlook и т.д.) 6 11-07-2017 21:41
Разное - Про кондесаторы. Где можно купить 10 штук.680 микрофарат 4 В MFC Михайло Прочее железо 1 25-02-2017 15:32
CMD/BAT - распределение файлов по папкам по списку bellagio Скриптовые языки администрирования Windows 1 11-05-2014 13:14
Распределение мощности по PCI-E Tractor Материнские платы и память 5 07-11-2012 23:24




 
Переход