1

Я хочу использовать командную строку Windows 10 для открытия файлов, имена которых находятся в определенном диапазоне. Файлы, которые я хочу открыть, имеют имена, такие как AF87314.corr.fits (некоторые файлы могут иметь расширение .corr.fits.discarded) и в качестве примера предположим, что я хочу открыть файлы с AF87314 по AF87320 . В Linux (Ubuntu) я могу использовать

ds9 AF873{14..20}.corr.fits

(DS9 это программа, которую я использую, чтобы открыть эти изображения). В Windows я не могу. Есть ли решение моей проблемы?

Заранее спасибо всем вам.

РЕДАКТИРОВАТЬ: Спасибо Иан С. за возможное решение, но это не то, что я ищу, так как каждое изображение открывается в новом окне программы. Мне нужно передать все имена файлов команде сразу, чтобы одновременно было открыто только одно окно, и я мог работать со всеми изображениями одновременно.

EDIT2: Спасибо LPChip, но что-то не работает, делая то, что вы предложили. Используя, например, ds9 AF873{30..35}.corr.fits программа выдает ошибку о том, что файл [full-path-to-file]/AF873 не может быть открыт (обратите внимание, что последняя часть имени файла отсутствует). Я в нужной папке, однако, я могу открыть любые файлы с помощью ds9 AF87330.corr.fits .

EDIT3: я думаю, что я нашел возможное решение, которое заключается в использовании findstr . Позже, когда я вернусь домой, я протестирую это немного больше, потому что он использует регулярные выражения, и я не знаком с ним.

1 ответ1

0

Вы можете использовать цикл FOR.

FOR /l %K in (14,1,20) DO DS9.EXE AF873%K.corr.fits

Что стоит отметить

  • % K - это номер вашей переменной, который меняется с каждым файлом.
  • Поскольку /l является счетчиком, это работает только с числами, а не с другими символами
  • Для простоты я опускаю любые ссылки на пути к файлам.
  • /l не использует ведущие нули. Если мы возьмем ваш пример и хотели бы начать в 08 вместо 14
    • Вы не можете использовать in (8,1,20) , результат будет AF8738 , AF8739 , AF87310 , AF87311 , ...
    • Вы должны использовать in (308,1,20) ... AF87%K.corr.fits

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .