brosafari, Возможно, Вы не указали путь к обрабатываемой папке:
Set "BoxIn=Z:\Box_In" - здесь надо вместо Z:\Box_In написать свой путь.
Если батник находится в обрабатываемой папке, то вот решение, здесь, естественно, путь указывать не надо
Код:
![Выделить весь код](images/misc/selectcode.png)
@echo off
cls
Set "Mask=*.jpg"
Set "BoxIn=%~dp0"
Set "BoxIn=%BoxIn:~0,-1%"
Set "Sym=1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM@#$_-"
Set /A M=67+1
Set /A Nmax=20
Set /A Nmin=8
Set "RanDir=%BoxIn%\%Random%%Random%%Random%%Random%"
Md %RanDir%
SetLocal EnableExtensions EnableDelayedExpansion
For /f "usebackq delims=" %%f in (`Dir "%BoxIn%\%Mask%" /B /A:-D 2^>nul`) Do Call :ReMove "%BoxIn%\%%f"
Move "%RanDir%\*.*" "%BoxIn%\" >nul
For /f "usebackq delims=" %%d in (`Dir "%BoxIn%\" /S /B /A:D 2^>nul`) Do (
If /I Not "%%d"=="%RanDir%" (
For /f "usebackq delims=" %%f in (`Dir "%%d\%Mask%" /B /A:-D 2^>nul`) Do Call :ReMove "%%d\%%f"
Move "%RanDir%\*.*" "%%d\" >nul
)
)
Rd "%RanDir%"
GoTo :Eof
:ReMove
Set "SS="
Set /A N=!random!%%(%Nmax%-%Nmin%+1)+%Nmin%
FOR /L %%i IN (1,1,!N!) DO (
Set /A R=!Random!%%%M%
Call Set "S1=%%Sym:~!R!,1%%"
Set "SS=!SS!!S1!"
)
Move %1 "%RanDir%\!SS!%~x1" >nul
GoTo :Eof