CMD/BAT - [решено] Рандомное распределение файлов в заданные папки

Ответить
Аватара пользователя
yellow11

CMD/BAT - [решено] Рандомное распределение файлов в заданные папки

Сообщение yellow11 »

Добрый день.

У меня есть определенное количество файлов в папке из них 2 всегда с одинаковым именем, но разным расширением eps и jpg, как пример D12112022-02_01.eps и D12112022-02_01.jpg

И вот задача рандомно перенести эти двойки в одну папку с номерами от 1 до 31( уже созданными и там могут быть другие файлы), чтобы каждая пара в разную папку, без переименовывания файлов.

Очень наболело уже вручную это делать изо дня в день

Спасибо за внимание
Вложения

[Расширение jpg было запрещено, вложение больше недоступно.]

Аватара пользователя
megaloman

Re: CMD/BAT - [решено] Рандомное распределение файлов в заданные папки

Сообщение megaloman »

Код:

Код: Выделить всё

@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

Re: CMD/BAT - [решено] Рандомное распределение файлов в заданные папки

Сообщение DJ Mogarych »

Powershell

Код:

Код: Выделить всё

$rootFolder = "c:\temp\random"
dir $rootFolder |? psiscontainer -eq $false |group basename |% {
mv $_.group.fullname "$rootFolder\$(get-random (1..31))" -WhatIf
}

Убедитесь, что всё работает правильно, и потом уберите -WhatIf, чтобы реально переносило.
Аватара пользователя
yellow11

Re: CMD/BAT - [решено] Рандомное распределение файлов в заданные папки

Сообщение yellow11 »

Powershell сработал, при использовании bat ничего не происходит, но в любом случае огромное спасибо)
Аватара пользователя
yellow11

Re: CMD/BAT - [решено] Рандомное распределение файлов в заданные папки

Сообщение yellow11 »

yellow11, Вы свои пути правильно указали вместо моих?

Set "BoxIn=Z:\Box_In"

Set "BoxOut=Z:\Box_Out"

Если пути не верны, то
Цитата yellow11:



при использовании bat ничего не происходит
CMD/BAT - [решено] Рандомное распределение файлов в заданные папки
Ответить

Вернуться в «Скриптовые языки администрирования Windows»