Sou mais fluente no Bash, mas tenho certeza que você poderia fazer o mesmo no Power Shell. Estou assumindo que você irá converter para o formato .jpg e armazenar todos os arquivos em um diretório ./output/. Meu script ficaria assim:
j=0;
for i in 'find . -type f \( -iname *.jpg -o -iname *.jpeg -o -iname *.png -o -iname *.gif -o -iname *.bmp \)'
do
j=$(($j+1))
convert $i output/'printf "%06X" $j'.jpg
done
Este script irá iniciar um contador '$ j' a partir de 0. Em seguida, ele encontra todos os arquivos que são do tipo file (em vez de diretórios ou links simbólicos ou outras coisas desse tipo) e correspondem às suas extensões especificadas de uma maneira que não diferencia maiúsculas e minúsculas. O () agrupa uma série de itens que são unidos em conjunto com um especificador-o OR para o comando find.
Usamos um loop for para examinar todos os arquivos encontrados, anotando-os com $ i.
Dentro do loop, eu incremento o contador $ j.
Em seguida, eu converto o nome do arquivo como eu encontrei para .jpg e saída para o diretório ./output/.
O nome do arquivo numerado hexadecimal é 0 preenchido com seis dígitos usando um comando printf.