Como abrir arquivos em um determinado intervalo a partir do prompt de comando no Windows 10

1

Eu quero usar o prompt de comando do Windows 10 para abrir arquivos cujos nomes estão em determinado intervalo. Os arquivos que eu quero abrir têm nomes como AF87314.corr.fits (alguns arquivos podem ter extensão .corr.fits.discarded) e, por exemplo, suponha que eu queira abrir os arquivos de AF87314 to AF87320 . No Linux (Ubuntu) eu posso usar

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

(ds9 é o programa que eu uso para abrir essas imagens). No Windows não posso. Existe uma solução para o meu problema?

Agradecemos antecipadamente a todos vocês.

EDIT: Obrigado Ian C. para dar uma solução possível, mas não é o que eu estou procurando desde que cada imagem abre em uma nova janela do programa. Eu preciso passar todos os nomes de arquivos para o comando de uma só vez, para que apenas uma janela esteja aberta de cada vez e eu possa trabalhar em todas as imagens ao mesmo tempo.

EDIT2: Obrigado LPChip também, mas algo não funciona fazendo o que você sugeriu. Usando por exemplo ds9 AF873{30..35}.corr.fits o programa dá um erro dizendo que o arquivo [full-path-to-file]/AF873 não pôde ser aberto (note que a última parte do nome do arquivo está faltando). Eu estou na pasta certa, no entanto, eu posso abrir todos os arquivos com ds9 AF87330.corr.fits .

EDIT3: Acho que encontrei uma solução possível, que é usar findstr . Mais tarde, quando chegar em casa, testarei um pouco mais, porque ele usa regex e não estou familiarizado com ele.

    
por Ale 09.11.2017 / 10:18

1 resposta

0

Você pode usar um loop FOR .

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

Coisas a serem observadas

  • O% K é o número da sua variável que muda com cada arquivo.
  • Porque / l é um contador, isso só funciona com números, não com outros caracteres
  • Para simplificar, estou omitindo qualquer referência a caminhos de arquivos.
  • / l não usa zeros à esquerda. Se pegarmos o seu exemplo e quisermos começar às 08 em vez de 14
    • Você não pode usar in (8,1,20) , o resultado seria AF8738 , AF8739 , AF87310 , AF87311 , ...
    • Você teria que usar in (308,1,20) ... AF87%K.corr.fits
por 09.11.2017 / 12:29