Показать полную графическую версию : Распределение артов в папки по 10 штук
Нужен батник, который будучи помещенным в папку с артами, начнет создавать папки и наполнять их артами по 10 штук. т.е. в папке с батником 100 картинок, после запуска скрипта должно остаться 10 папок по 10 артов в каждом.
DJ Mogarych
12-01-2020, 08:21
Что такое арты?
с артами »
Каких калибров?
создавать папки »
По какому принципу формируются имена?
по 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.'
}
megaloman
12-01-2020, 17:40
@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"
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.