如何使用常规Windows命令行在文本文件中增加值?

我想为我的一个项目保留一个“编译计数器”。 我想一个快速和肮脏的方法来做到这一点将保持一个文本文件中有一个普通的数字,然后只需要一个小脚本来增加这个每次我编译。

我将如何去做这个使用常规的Windows命令行

我真的不想安装一些额外的shell来做到这一点,但如果你有任何其他超级简单的build议,可以做到这一点,他们也很自然地赞赏。

你可以尝试一个普通的旧批处理文件。

@echo off for /f " delims==" %%i in (counter.txt) do set /A temp_counter= %%i+1 echo %temp_counter% > counter.txt 

假定count.bat和counter.txt位于相同的目录中。

这将是一个新的壳(但我认为这是值得的),但从PowerShell它将是

 [int](get-content counter.txt) + 1 | out-file counter.txt 

我建议只需将生成的当前日期时间附加到日志文件。

 date >> builddates.txt 

通过这种方式,您可以通过#行来获得构建计数,如果您稍后可能会对分析日期和时间感到困扰,则可能还会获得一些有趣的统计信息。

计算文件中行数的额外大小和时间将是微不足道的,除非您正在进行严重的项目迭代!

如果你不介意运行Microscoft Windows Based Script,那么这个jscript就可以正常工作了。 把它保存为一个.js文件,并使用“wscript c:/script.js”从dos运行。

 var fso, f, fileCount; var ForReading = 1, ForWriting = 2; var filename = "c:\\testfile.txt"; fso = new ActiveXObject("Scripting.FileSystemObject"); //create file if its not found if (! fso.FileExists(filename)) { f = fso.OpenTextFile(filename, ForWriting, true); f.Write("0"); f.Close(); } f = fso.OpenTextFile(filename, ForReading); fileCount = parseInt(f.ReadAll()); //make sure the input is a whole number if (isNaN(fileCount)) { fileCount = 0; } fileCount = fileCount + 1; f = fso.OpenTextFile(filename, ForWriting, true); f.Write(fileCount); f.Close();