Как следует из названия, я пытаюсь выбрать до четырех случайных файлов (обоев) из папки для дальнейшей обработки. Папка не содержит вложенных папок, только *.jpg, *.bmp и *.png (она может содержать файл Thumbs.db, но я уже позаботился об этом).
< br/> Я читаю все файлы с помощью цикла for
, создавая что-то похожее на массив, затем я хочу запустить еще один цикл for
для создания случайных чисел, которые будут действовать как индексы для выбора файлов .
setlocal enabledelayedexpansion
set "wps=1 2 3 4"
set /a ind = 0
for /f "tokens=* delims=" %%g in ('dir C:\Wallpapers /a:-h-s /b /s') do (
set /a ind += 1
set "!ind!=%%g"
)
for %%g in (%wps%) do (
set /a "num = (((!random! & 1) * 1073741824) + (!random! * 32768) + !random!) %% %ind% + 1"
echo Wallpaper %%g is #!num! - Title: "!!num!!"
)
Конечно, эхо-строка просто выводит Wallpaper 1 is #118 - Title: "118"
вместо Wallpaper 1 is #118 - Title: "C:\Wallpapers\Miami Skyline.jpg"
.
Итак, мой конкретный вопрос: как я могу дважды расширить переменную внутри цикла for
?
[Примечание № 1: строка, которая создает случайное число, должна быть такой длины, потому что она дает хорошее случайное распределение значений]
[Примечание № 2: мне нужно, чтобы wps
хранилось таким образом, потому что иногда мне может понадобиться всего три обои, не обязательно в порядке номеров]