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

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

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

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


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

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


Изображения
Тип файла: jpg рандом.jpg
(126.2 Kb, 6 просмотров)
Добрый день.
У меня есть определенное количество файлов в папке из них 2 всегда с одинаковым именем, но разным расширением eps и jpg, как пример D12112022-02_01.eps и D12112022-02_01.jpg
И вот задача рандомно перенести эти двойки в одну папку с номерами от 1 до 31( уже созданными и там могут быть другие файлы), чтобы каждая пара в разную папку, без переименовывания файлов.
Очень наболело уже вручную это делать изо дня в день
Спасибо за внимание

Отправлено: 20:02, 15-11-2022

 

Ветеран


Contributor


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

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


Код: Выделить весь код
@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, система не позволяет отправить для Вас сообщения

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

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:12, 15-11-2022 | #2



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

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


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

fascinating rhythm


Moderator


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

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


Powershell
Код: Выделить весь код
$rootFolder = "c:\temp\random"

dir $rootFolder |? psiscontainer -eq $false |group basename |% {
mv $_.group.fullname "$rootFolder\$(get-random (1..31))" -WhatIf
}
Убедитесь, что всё работает правильно, и потом уберите -WhatIf, чтобы реально переносило.

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

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:23, 15-11-2022 | #3


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


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

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


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

Отправлено: 19:18, 16-11-2022 | #4


Ветеран


Contributor


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

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


yellow11, Вы свои пути правильно указали вместо моих?
Set "BoxIn=Z:\Box_In"
Set "BoxOut=Z:\Box_Out"
Если пути не верны, то
Цитата yellow11:
при использовании bat ничего не происходит »

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

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:26, 16-11-2022 | #5


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


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

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


Спасибо, поправил путь, все отлично работает

Отправлено: 09:11, 17-11-2022 | #6



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Распределение артов в папки по 10 штук st3r Скриптовые языки администрирования Windows 3 12-01-2020 17:40
CMD/BAT - [решено] Рандомное копирование файлов по критерию arioo7 Скриптовые языки администрирования Windows 10 06-01-2019 09:23
CMD/BAT - [решено] Переименовать конечные символы файлов на заданные по ходу скрипта Alexander_88 Скриптовые языки администрирования Windows 7 07-04-2018 20:42
Любой язык - [решено] Распределение файлов в каталоге Тишина Скриптовые языки администрирования Windows 2 26-04-2013 17:09
CMD/BAT - [решено] Перемещение файлов по списку в заданные директории 929151 Скриптовые языки администрирования Windows 4 16-11-2012 01:56




 
Переход