Loop da linha de comando para executar o comando em todos os arquivos em um diretório (mais subdiretórios, se possível

14

Suponho que isso seja bastante fácil, mas não tenho experiência com os utilitários de linha de comando do Windows. Basicamente, preciso iterar todos os arquivos em um diretório (ótimo se ele puder executar subdiretórios, mas posso executá-lo em cada um dos 5 diretórios, se necessário), obter o nome como uma variável e executá-lo

"C:\Program Files\ImageMagick-6.7.6-Q16\convert.exe" -compress LZW 
   -colorspace Gray -colors 32 file_var file_var

Vi arquivos de nome dinamicamente em um prompt de comando para loop . Eu seria capaz de usar isso (trocando o SET ... pelo comando acima)? O espaço no computador em questão está além do limitado, por isso não posso executar um backup antes de executá-lo nesta fase (ruim, eu sei).

Robert
fonte
Robert, se você conseguiu responder sua própria pergunta, adicione sua própria resposta e aceite-a como a correta.
Julian Knight
Eu não acho que é exatamente isso que você deseja, o final ( "%%f" "%%f") colocará apenas o nome do arquivo (com caminho completo) duas vezes. Você provavelmente deseja usar algo como "%%f" "%%~dpnf.gif"para alterar a extensão do arquivo de saída.
Synetech
@ JulianKnight - obrigado, na verdade, tentei voltar quando, mas acho que houve uma espera forçada para fazer isso. Meio que esqueci a pergunta desde então.
Robert

Respostas:

5

Abra o PowerShell

$files = Get-ChildItem -Recurse 
foreach ($file in $files){
    c:\windows\System32\notepad.exe $file.FullName
}

Get-ChildItem recupera uma lista de arquivos como objetos do subdiretório atual. "-recurse" incluirá subdiretórios. Isso o coloca em uma matriz $ Files.

O loop foreach percorre cada arquivo e chama o bloco de notas com o argumento da linha de comandos do caminho completo do nome do arquivo para cada arquivo.

CUIDADO: Teste o código acima em um diretório com alguns arquivos de texto pequenos, pois ele abrirá uma instância do Bloco de Notas para cada arquivo.

Isso deve lhe dar uma idéia de como proceder com o que você está procurando fazer.

Tchau
fonte