gpt4 book ai didi

batch-file - 如何在批处理文件中增加txt文件中的值?

转载 作者:行者123 更新时间:2023-12-02 21:37:13 24 4
gpt4 key购买 nike

我一直在尝试编写一个批处理代码,它将:

  1. POST 后自动执行。
  2. 增加一个代表 POST 数量的值。
  3. 保存、显示值并重新启动电脑。

我尝试编写一个访问 txt 文件以获取该值的程序;但该值不会增加。

@echo off

echo.This script is counting the # of POSTs.

cd "C:\Users\HP-M6\Documents"
for /f "tokens=* delims=" %%x in (TEST.txt) do echo %%x

call:myPOSTTest

for /f "tokens=* delims=" %%x in (TEST.txt) do echo %%x

echo.&pause&goto:eof

::--------------------------------------------------------
::-- Function section starts below here
::--------------------------------------------------------
--
:myPOSTTest - here starts my function identified by it's label

cd "C:\Users\HP-M6\Documents"

for /f "tokens=* delims=" %%x in (TEST.txt) do (

set %x%+=1

)

goto:eof

最佳答案

for /f "tokens=* delims=" %%x in (TEST.txt) do (
set %x%+=1
)

这将把 TEST.txt 的内容分配给元变量(循环控制变量)%%x

然后它将值“1”分配给用户变量“[用户变量x的内容]+”

由于尚未设置用户变量 x,因此会将 1 分配给用户变量 +

这应该重写

for /f "tokens=* delims=" %%x in (TEST.txt) do (
set /a var=%%x+1
)

也就是说,将从文件读取到元变量%%x + 1 的值分配给用户变量var/a set 上的 > 修饰符表示将赋值解析为算术表达式,而不是字符串赋值

然后您需要将值写入文件,因此替换例程是

:myPOSTTest    - here starts my function identified by its label
cd "C:\Users\HP-M6\Documents"
for /f %%x in (TEST.txt) do (
set /a var=%%x+1
)
>TEST.txt echo %var%
goto:eof

请注意,由于文件中只有一个标记,因此 tokensdelims 短语是多余的。

这还假设 TEST.TXT 已经存在并且初始内容为 0。为了确保安全,最终版本应该是:

:myPOSTTest    - here starts my function identified by its label
cd "C:\Users\HP-M6\Documents"
if not exist TEST.txt >TEST.txt echo 0
for /f %%x in (TEST.txt) do (
set /a var=%%x+1
)
>TEST.txt echo %var%
goto:eof

如果该文件尚不存在,它将创建首行为“0”的文件。


(少量编辑)- 应该在检测到文件之前完成目录更改。

关于batch-file - 如何在批处理文件中增加txt文件中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21102693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com