PDA

Показать полную графическую версию : Распределение артов в папки по 10 штук


st3r
12-01-2020, 00:14
Нужен батник, который будучи помещенным в папку с артами, начнет создавать папки и наполнять их артами по 10 штук. т.е. в папке с батником 100 картинок, после запуска скрипта должно остаться 10 папок по 10 артов в каждом.

DJ Mogarych
12-01-2020, 08:21
Что такое арты?

Iska
12-01-2020, 08:52
с артами »
Каких калибров?

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

по 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