Кратко: ? в маске имени файла заменяет ровно один любой символ — одну букву, цифру или другой знак, но не ноль и не несколько символов.
Например, маска otchet?.txt подходит к файлам:
otchet1.txt;otchetA.txt;otchet7.txt.
Но не подходит к otchet.txt (нужного символа нет) и otchet12.txt (символов два).
Как проверить: мысленно поставьте на место каждого ? по одному символу. Если в имени файла в этом месте стоит ровно один символ — файл подходит. Для нескольких неизвестных символов нужно несколько знаков ? или звёздочка *, которая заменяет любое количество символов, включая ноль.