我想为我的一个项目保留一个“编译计数器”。我认为一种快速而肮脏的方法是保留一个带有普通数字的文本文件,然后只需调用一个小脚本在每次编译时递增该数字。

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

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

有帮助吗?

解决方案

您可以尝试使用普通的旧批处理文件。

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

其他提示

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

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

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

date >> builddates.txt

这样,您就可以通过行数获得构建计数,如果您稍后愿意分析日期和时间,您还可能会获得一些有趣的统计数据。

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

如果您不介意运行基于 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();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top