通常の Windows コマンドラインを使用してテキストファイルの値を増やすにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/40787

質問

私のプロジェクトの 1 つに「コンパイル カウンタ」を保持したいと考えています。私は、これを行う手っ取り早く汚い方法は、単純な数値を含むテキスト ファイルを保持し、コンパイルのたびにこの数値をインクリメントする小さなスクリプトを呼び出すことだと考えました。

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

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

役に立ちましたか?

解決

普通の古いバッチファイルを試すことができます。

@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

こうすることで、行数からビルド数を取得でき、後で日付と時刻を分析する必要がある場合には、興味深い統計も取得できる可能性があります。

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

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