Comment incrémenter une valeur dans un fichier texte à l'aide de la ligne de commande Windows standard ?

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

Question

J'aimerais conserver un "compteur de compilation" pour un de mes projets.J'ai pensé qu'un moyen rapide et simple de procéder serait de conserver un fichier texte contenant un numéro simple, puis de simplement faire appel à un petit script pour l'incrémenter à chaque fois que je compile.

Comment procéder pour ce faire en utilisant la ligne de commande Windows standard ?

Je n'ai pas vraiment envie d'installer un shell supplémentaire pour ce faire, mais si vous avez d'autres suggestions très simples qui permettraient d'accomplir exactement cela, elles sont naturellement également appréciées.

Était-ce utile?

La solution

Vous pouvez essayer un vieux fichier batch.

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

en supposant que count.bat et counter.txt se trouvent dans le même répertoire.

Autres conseils

Ce serait un nouveau shell (mais je pense que ça vaut le coup), mais depuis PowerShell ce serait

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

Je suggérerais simplement d'ajouter la date/heure actuelle de la construction à un fichier journal.

date >> builddates.txt

De cette façon, vous obtenez un nombre de builds via le nombre de lignes, et vous pouvez également obtenir des statistiques intéressantes si vous pouvez prendre la peine d'analyser les dates et les heures plus tard.

La taille et le temps supplémentaires nécessaires pour compter le nombre de lignes dans le fichier seront insignifiants à moins que vous n'effectuiez des itérations de projet très rapides !

Si cela ne vous dérange pas d'exécuter un script Microsoft Windows, ce jscript fonctionnera correctement.enregistrez-le simplement en tant que fichier .js et exécutez-le à partir de DOS avec "wscript c:/script.js".

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();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top