使用命令行计算目录中文件名的总和

使用命令行计算目录中文件名的总和

我希望我的桌面上有实时销售税总额。我以相同的方式命名我的所有购买和支出:日期 {string} 空格 项目{string} 空格 金额{string},后者始终是带有句点分隔符的美元和美分金额。我想在目录中的每个文件名中添加金额数字。

一旦我有了一个包含美元金额的文本文件,我可能会在 Excel 中处理它以计算销售税,这里所有商品的销售税为 15%。

文件名示例:

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

我搜索过这个但没有找到任何结果,那么在 Windows 命令行中这是否可行?

答案1

如何根据以下文件名创建包含美元金额的文本文件?

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

使用以下批处理文件(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
  )
)

用法:

ExtractPrices directory
  • directory是包含要处理的文件的目录的名称

  • 美元金额从文件名中提取并写入与prices.txt批处理文件相同的目录中。

示例输出:

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

一旦我有了包含美元金额的文本文件,我可能会在 Excel 中处理它

这是个好主意。虽然可以在批处理文件中进行算术运算,但这样做很困难,而且有局限性——它只能处理 32 位整数。

但是,如果您确实想使用批处理文件进行算术运算,那么还是有一些解决方法的。

NT 批处理文件中的数学运算了解更多信息。


进一步阅读

相关内容