Como processar vários arquivos de uma só vez?

1

Eu tenho que usar essa ferramenta vera ++ contra vários arquivos *.cpp e *.h . Eu aceito um nome de arquivo como parâmetro. Como procurar arquivos *.cpp e enviá-los para vera++ ? Este é um one-liner ou eu precisarei de um script em lote?

    
por Jader Dias 13.06.2011 / 15:29

2 respostas

3

Apenas a pasta atual:

for %i in (*.cpp *.h) do vera++ "%~i"

Incluindo subpastas:

for /r . %i in (*.cpp *.h) do vera++ "%~i"

/r . significa "iniciar na pasta atual". Se você quiser especificar um nome de pasta diferente, use for /r newfolder .

    
por 13.06.2011 / 15:51
3

É um verso na documentação, certamente. Aqui estão as opções:

  • Faça o que a documentação diz. A documentação diz
    find . -name '*.h' | xargs vera++ -profile my_favourite
    E com um conjunto de ferramentas apropriado, como o próprio da Microsoft kit de ferramentas utilitárias para download SFUA executado no Windows 7 Subsistema para aplicativos baseados em UNIX (que vem na caixa com o Windows 7 Ultimate edition e Windows Server 2008 R2 - Para o Windows XP, pode-se faça o download e instale o Serviços para UNIX versão 3.5 .) um possui ferramentas como find e xargs para Windows. Existem, é claro, também GNUWin32 , cygwin e unxutils .
  • Se você está usando TCC / LE da JP Software , você pode usar o SELECT comando para selecionar de forma interativa os arquivos a serem processados:
    SELECT vera++ [*]
    Observe o colchetes, que fazem com que todos os nomes dos arquivos sejam combinados em um comando.
  • Usando um gerenciador de arquivos ortodoxo , como Comandante de arquivos para Windows ou FAR , você também pode selecionar os arquivos para processar interativamente e colá-los na linha de comando com o arquivo apropriado. keypress.
  • Se você está usando TCC / LE da JP Software , você pode usar o FOR comando para processar arquivos depois de encontrá-los (digamos) com o DIR comando :
    DIR /B /S *.cpp;*.h|FOR F IN (@CON) do vera++ %F
    ou apenas processe-os diretamente, pois FOR tem uma opção de recursão:
    FOR /R F IN (*.cpp;*.h) DO vera++ %F
    Isso, é claro, executa o comando uma vez por arquivo individual encontrado.
  • Ou você pode fazer o que o Grawity disse.
por 13.06.2011 / 16:34