Wie erhöhe ich einen Wert in einer Textdatei mithilfe der regulären Windows-Befehlszeile?

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

Frage

Ich möchte einen „Kompilierungszähler“ für eines meiner Projekte behalten.Ich dachte, eine schnelle und schmutzige Möglichkeit wäre, eine Textdatei mit einer einfachen Zahl darin zu behalten und dann einfach ein kleines Skript aufzurufen, um diese bei jedem Kompilieren zu erhöhen.

Wie würde ich das über die normale Windows-Befehlszeile machen?

Ich habe eigentlich keine Lust, dafür eine zusätzliche Shell zu installieren, aber wenn Sie andere supereinfache Vorschläge haben, die genau das bewerkstelligen würden, sind diese natürlich ebenfalls willkommen.

War es hilfreich?

Lösung

Sie können eine einfache alte Batchdatei ausprobieren.

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

Vorausgesetzt, count.bat und counter.txt befinden sich im selben Verzeichnis.

Andere Tipps

Es wäre eine neue Shell (aber ich denke, es lohnt sich), aber von PowerShell aus wäre es so

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

Ich würde vorschlagen, einfach die aktuelle Datums- und Uhrzeitangabe des Builds an eine Protokolldatei anzuhängen.

date >> builddates.txt

Auf diese Weise erhalten Sie eine Build-Anzahl über die Anzahl der Zeilen und möglicherweise auch einige interessante Statistiken, wenn Sie sich später die Mühe machen, die Daten und Zeiten zu analysieren.

Die zusätzliche Größe und Zeit zum Zählen der Anzahl der Zeilen in der Datei wird unbedeutend sein, es sei denn, Sie führen wirklich schnelle Projektiterationen durch!

Wenn es Ihnen nichts ausmacht, ein Microsoft Windows-basiertes Skript auszuführen, funktioniert dieses JScript einwandfrei.Speichern Sie es einfach als .js-Datei und führen Sie es unter DOS mit „wscript c:/script.js“ aus.

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();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top