6

我想为我的一个项目保留一个“编译计数器”。我想一个快速而肮脏的方法是保留一个带有纯数字的文本文件,然后在每次编译时简单地调用一个小脚本来增加它。

我将如何使用常规 Windows 命令行来执行此操作?

我真的不想安装一些额外的 shell 来执行此操作,但如果您有任何其他超级简单的建议可以完成此操作,它们自然也会受到赞赏。

4

4 回答 4

12

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

@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 位于同一目录中。

于 2008-09-02T22:59:38.920 回答
2

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

[int](get-content counter.txt) + 1 | out-file counter.txt
于 2008-09-02T22:26:54.740 回答
2

我建议将构建的当前日期时间附加到日志文件中。

date >> builddates.txt

通过这种方式,您可以通过 # of lines 获得构建计数,并且如果您稍后会费心分析日期和时间,您还可能会获得一些有趣的统计数据。

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

于 2008-09-02T23:17:46.070 回答
1

如果您不介意运行基于 Microsoft Windows 的脚本,那么这个 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();
于 2008-09-02T22:45:50.623 回答