6

私のプロジェクトの1つに「コンパイルカウンター」を残したいと思います。これを行うための迅速で汚い方法は、プレーンな番号を含むテキストファイルを保持し、コンパイルするたびにこれをインクリメントする小さなスクリプトを呼び出すことです。

通常のWindowsコマンドラインを使用してこれを行うにはどうすればよいですか?

これを行うために追加のシェルをインストールする気はありませんが、これを実現する他の非常に単純な提案があれば、当然それらも高く評価されます。

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

そうすれば、行数を介してビルド数を取得できます。後で日付と時刻を分析するのが面倒な場合は、興味深い統計も取得できます。

ファイル内の行数をカウントするための余分なサイズと時間は、非常に高速なプロジェクトの反復を行っていない限り、重要ではありません!

于 2008-09-02T23:17:46.070 に答える
1

Microscoft Windowsベースのスクリプトを実行してもかまわない場合は、このjscriptで問題なく動作します。.jsファイルとして保存し、「wscriptc:/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 に答える