我一直在尝试编写一个批处理代码,该代码将:
我试图编写一个访问 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
Run Code Online (Sandbox Code Playgroud)
for /f "tokens=* delims=" %%x in (TEST.txt) do (
set %x%+=1
)
Run Code Online (Sandbox Code Playgroud)
它将执行的操作是将 的内容分配TEST.txt给元变量(循环控制变量)%%x
然后它将值“1”分配给用户变量“[用户变量的内容x]+”
x由于尚未设置user-variable ,因此分配1给 user-variable +。
这应该重写
for /f "tokens=* delims=" %%x in (TEST.txt) do (
set /a var=%%x+1
)
Run Code Online (Sandbox Code Playgroud)
也就是说,将从var文件读取到元变量中的值分配给用户变量%%x+ 1。/a上的修饰符set意味着resolve the assignment as an arithmetic expression, not a string-assignment。
然后您需要将值写入文件,因此替换例程是
for /f "tokens=* delims=" %%x in (TEST.txt) do (
set %x%+=1
)
Run Code Online (Sandbox Code Playgroud)
请注意,由于文件中只有一个标记,因此tokens和delims短语是多余的。
这还假设TEST.TXT已经存在并且初始内容为0。为了确保安全,最终版本应该是:
for /f "tokens=* delims=" %%x in (TEST.txt) do (
set /a var=%%x+1
)
Run Code Online (Sandbox Code Playgroud)
如果该文件尚不存在,则将创建首行为“0”的文件。
(小编辑)-目录更改应该在检测到文件之前完成。
| 归档时间: |
|
| 查看次数: |
8116 次 |
| 最近记录: |