我对批处理文件很新,我试图找到一种方法来构建一个计数批处理文件,该文件将增加.csv文件中的数字 - 但它必须在正确的行上执行,基于日期。所以我希望我的.csv文件看起来像这样:
2015,10,345
2015,11,287
2015,12,237
2016,01,35
它目前是2016年1月,所以每次我的文件都在本月运行时,我希望它在最后一行添加1。当它到达二月份时,我希望用2016,02,1添加一个新行,然后添加到那个等等。
就像我说的,我对此很新!我知道批处理文件的基础知识,并试图找到答案,人们已经问过类似的事情,我已经尝试分解响应以找出我需要做的事情,但我无法弄清楚从哪里开始!
我想我需要开始使用FOR / F做一些事情并将其设置为跳过不符合某些条件的行?
答案 0 :(得分:1)
批处理没有任何可以轻松编辑文本文件或使用日期的命令。因此,您必须通过一系列非常简单的步骤构建解决方案。
@echo off
setlocal
set "file=test.txt"
:: Get current year and month
for /f "delims=. tokens=1,2" %%A in (
'wmic os get localDateTime'
) do if "%%B" neq "" set ts=%%A
set "yr=%ts:~0,4%"
set "mo=%ts:~4,2%"
:: Get current count for this month and add 1
set "cnt=0"
for /f "delims=, tokens=3" %%N in (
'findstr "^%yr%,%mo%," "%file%"'
) do set /a "cnt=%%N+1"
:: Create a new file consisting of all but the current month count,
:: plus the new month count
>"%file%.new" (
findstr /v "^%yr%,%mo%," "%file%"
echo %yr%,%mo%,%cnt%
)
:: Move the new file to the original name
move "%file%.new" "%file%" >nul