Soma os números em nomes de arquivos em um diretório usando a linha de comando

1

Gostaria de ter uma exposição em tempo real sobre impostos sobre vendas em minha área de trabalho. Eu nomeio todas as minhas compras e despesas da mesma forma: date {string} SPACE item {string} SPACE amount {string}, o último sempre será um valor em dólar e centavos com um separador de período. Gostaria de adicionar os números para quantidade em cada nome de arquivo em um diretório.

Uma vez eu tive um arquivo de texto com os valores em dólares eu provavelmente processaria isso no excel para calcular o imposto sobre vendas, que aqui é 15% em tudo.

exemplo de nome de arquivo:

20160516 jcca.15144 115.00 anRtn.pdf
20160408 DunPrint.poster 90.85 29725-1.pdf
20160505 bpSouth.fuel 59.71.jpg

Eu pesquisei sobre isso e não encontrei resultados, então isso é possível na linha de comando do Windows?

    
por nigelc 15.05.2016 / 23:50

1 resposta

2

Como posso criar um arquivo de texto com valores em dólar a partir dos seguintes nomes de arquivo?

20160516 jcca.15144 115.00 anRtn.pdf
20160408 DunPrint.poster 90.85 29725-1.pdf
20160505 bpSouth.fuel 59.71.jpg

Use o seguinte arquivo de lote (ExtractPrices.cmd):

@echo off
Setlocal EnableDelayedExpansion
for /f "usebackq tokens=*" %%a in ('dir /b %1')  do (
  for /f "tokens=3" %%b in ("%%~na")  do (
    echo %%b>>prices.txt
  )
)

Uso:

ExtractPrices directory
  • directory é o nome de um diretório que contém os arquivos a serem processados

  • Os valores em dólar são extraídos dos nomes dos arquivos e gravados em prices.txt , localizados no mesmo diretório do arquivo em lotes.

Exemplo de saída:

F:\test>dir /b files
20160408 DunPrint.poster 90.85 29725-1.pdf
20160505 bpSouth.fuel 59.71.jpg
20160516 jcca.15144 115.00 anRtn.pdf

F:\test>ExtractPrices.cmd files

F:\test>type prices.txt
90.85
59.71
115.00

Quando eu tiver um arquivo de texto com valores em dólares, provavelmente processarei isso no excel

Esta é uma boa ideia. Embora a aritmética possa ser feita em arquivos em lote, é difícil e tem limitações - ela só pode manipular inteiros de 32 bits.

No entanto, existem soluções alternativas se você realmente quiser usar arquivos em lote para a aritmética.

Veja Matemática em arquivos em lote do NT para obter mais informações.

Leitura Adicional

por 16.05.2016 / 00:27