小编Her*_*tik的帖子

批处理:为什么附加文本文件会写“ECHO 已关闭”?

所以我写了一个批处理,其中有一些代码来检查它通过读取文本文件运行了多少次,然后将新的增加的数字写回到该文本文件中。

@ECHO OFF
for /f "delims=" %%x in (TimesRun.txt) do set Build=%%x
set Build=%Build%+1
@echo Build value : %Build%
echo %Build%>>TimesRun.txt
Pause
Run Code Online (Sandbox Code Playgroud)

这确实附加了文本文件,但它添加了“1+1”。傻我!我忘了使用 /a 开关来启用算术运算!但是当我相应地更改代码时......

@ECHO OFF
for /f "delims=" %%x in (TimesRun.txt) do set Build=%%x
set /a Build=%Build%+1
@echo Build value : %Build%
echo %Build%>>TimesRun.txt
Pause
Run Code Online (Sandbox Code Playgroud)

......发生了一些有趣的事情:ECHO 关闭,而不是附加我的文件写在控制台上。现在,我知道这通常发生在ECHO没有文本或空变量的情况下。我添加了第一个,@echo Build value : %Build%专门查看变量Build是否为空;事实并非如此,并且计算是正确进行的。我已经想通了

>>TimesRun.txt (echo %Build%)
Run Code Online (Sandbox Code Playgroud)

确实带来了预期的结果。我还是不明白为什么

echo %Build%>>TimesRun.txt
Run Code Online (Sandbox Code Playgroud)

不,但是。我错过了什么?

cmd batch-file io-redirection

5
推荐指数
1
解决办法
2581
查看次数

标签 统计

batch-file ×1

cmd ×1

io-redirection ×1