Conforme mencionado no título, preciso exportar os nomes de vários arquivos de imagem de vários diretórios para um único arquivo de texto como uma lista. Como eu faria essa tarefa?
Em segundo lugar, seria possível remover parcialmente os nomes dos arquivos listados no arquivo de texto? Por favor, veja a captura de tela:
Preciso remover o nome do arquivo "HS3-HTS-" e deixar apenas o número do nome do arquivo.
Finalmente, eu precisaria do prompt de comando para executar esta tarefa ou existe outra solução?
Achei umlinkaqui, mas não disse como selecionar apenas arquivos de imagem, qualquer ajuda será apreciada. Desde já, obrigado.
Responder1
Supondo que você queira extensões de arquivo jpg, jpeg, gif e png; e supondo que você queira extrair os nomes dos arquivos do diretório atual:
powershell "dir *.jpg,*.jpeg,*.gif,*.png | ForEach-Object {echo ($_.BaseName -replace 'HS3-HTS-', '')}" > Output.txt
Se for necessária uma pesquisa recursiva, para localizar arquivos em vários diretórios usando um único comando, o seguinte pode funcionar (basta substituir "C:\" pela unidade ou diretório base desejado):
powershell "Get-ChildItem -Path C:\ -Recurse -Include *.jpg,*.jpeg,*.gif,*.png | ForEach-Object {echo ($_.BaseName -replace 'HS3-HTS-', '')}" > Output.txt
Observe que ambos os exemplos acima colocarão a lista em um arquivo chamado “Output.txt” localizado no diretório atual. Pordiretório atual, quero dizer o diretório que está sendo visualizado usando o prompt de comando. Se você quiser ver a saída diretamente no prompt de comando, sem precisar abrir um arquivo, simplesmente omita o final > Output.txt
nos comandos acima. Observe também que apesar de serem baseados no PowerShell, os comandos acima foram formulados para serem executados no prompt de comando normal. A parte "powershell" diz para analisar o comando usando o PowerShell.