Показать полную графическую версию : [решено] Рандомное распределение файлов в заданные папки
yellow11
15-11-2022, 20:02
Добрый день.
У меня есть определенное количество файлов в папке из них 2 всегда с одинаковым именем, но разным расширением eps и jpg, как пример D12112022-02_01.eps и D12112022-02_01.jpg
И вот задача рандомно перенести эти двойки в одну папку с номерами от 1 до 31( уже созданными и там могут быть другие файлы), чтобы каждая пара в разную папку, без переименовывания файлов.
Очень наболело уже вручную это делать изо дня в день
Спасибо за внимание
megaloman
15-11-2022, 21:12
@Echo Off
cls
Set "BoxIn=Z:\Box_In"
Set "Name=D*_??"
Set "Ext1=jpg"
Set "Ext2=eps"
Set "BoxOut=Z:\Box_Out"
Set /A Nfold=31
For %%f In (1,1,10) Do Call Set /A Rnd=%%Random%%
FOR %%f IN ("%BoxIn%\%Name%.%Ext1%") Do (
If Exist "%%~dpnf.%Ext2%" Call :NumFile "%%~dpnf"
)
FOR /F "usebackq skip=%Nfold% delims==" %%f IN (`2^>nul Set "@@"`) DO Set "%%f="
Set /A i=101
FOR /F "usebackq tokens=2 delims==" %%f IN (`2^>nul Set "@@"`) DO (
Call Set "ii=%%i:~-2%%"
2>nul Call Md "%BoxOut%\%%ii%%"
>nul Call Move "%%f.%Ext1%" "%BoxOut%\%%ii%%\"
>nul Call Move "%%f.%Ext2%" "%BoxOut%\%%ii%%\"
Call Set /A i+=1
)
Pause
Exit /B
:NumFile
Set /A Rnd=10000+32768*%Random%/32768
>nul 2>&1 Set "@@%Rnd%"&& GoTo :NumFile
Set "@@%Rnd%=%~1"
Exit /B yellow11, Почистите пожалуйста свои почтовые ящики в PM, система не позволяет отправить для Вас сообщения
DJ Mogarych
15-11-2022, 21:23
Powershell
$rootFolder = "c:\temp\random"
dir $rootFolder |? psiscontainer -eq $false |group basename |% {
mv $_.group.fullname "$rootFolder\$(get-random (1..31))" -WhatIf
}
Убедитесь, что всё работает правильно, и потом уберите -WhatIf, чтобы реально переносило.
yellow11
16-11-2022, 19:18
Powershell сработал, при использовании bat ничего не происходит, но в любом случае огромное спасибо)
megaloman
16-11-2022, 22:26
yellow11, Вы свои пути правильно указали вместо моих?
Set "BoxIn=Z:\Box_In"
Set "BoxOut=Z:\Box_Out"
Если пути не верны, то при использовании bat ничего не происходит »
yellow11
17-11-2022, 09:11
Спасибо, поправил путь, все отлично работает
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.