2010-06-06 8 views
0

J'ai besoin d'un fichier de traitement par lots qui écrit le numéro de compte dans un fichier txt.Nombre d'écriture/lecture dans le fichier txt

La prochaine fois que le fichier batch est exécuté, il doit lire le nombre de comptage actuel du fichier txt et ajouter 1 pour compter et enregistrer cette nouvelle valeur dans le fichier txt. (Rien d'autre est dans le fichier txt) lorsque le nombre est> 5 devrait commencer à partir de 1 à nouveau

Exemple: Count.bat fonctionne 1 fois:

count.txt n'a pas comte si Count.bat sauve la valeur 1 dans count.txt

count.bat est exécuté 2 fois:

count.bat lit 1 de count.txt et enregistre la nouvelle valeur 2 à count.txt

Lorsque count.bat est exécuté pour le 6 temps, il devrait être rt sur en enregistrant la valeur 1 dans count.txt

Je pense que ce soit juste facile à faire, mais I'am pas utiliser aux commandes batch

Alors nous espérons que quelqu'un ici pourrait me aider.

Répondre

0

Je sais que ce n'est pas exactement ce que vous avez demandé, mais vous pouvez créer des fichiers séparés:

@echo off 

if not exists count.1 goto l1 
if not exists count.2 goto l2 
if not exists count.3 goto l3 
if not exists count.4 goto l4 
if not exists count.5 goto l5 

del count.* 

rem -- fall trhough -- and create first count-file 

:l1 
echo . > count.1 
goto end 

:l2 
echo . > count.2 
goto end 

:l3 
echo . > count.3 
goto end 

:l4 
echo . > count.4 
goto end 

:l5 
echo . > count.5 

rem -- fall through -- goto end 

:end 
0

Démarrer avec le fichier temp.txt avec une ligne contenant seulement une (1) sans parenthèse.

for /f "eol=# tokens=* delims=," %%i in (temp.txt) do (
    set /A Count = %%i + 1 
    If '%Count%' == '6' (set /A Count = 1) 
    ) 
    echo %Count% > temp.txt 
0
if not exist count.txt (
    echo 1 > count.txt 
    exit 
) 
< count.txt set /p count= 
if %count% equ 6 (
    echo 1 > count.txt 
    exit 
) 
set /a count=count+1 
echo %count% > count.txt 

Pour être honnête; J'ai seulement écrit cette réponse parce que cette question a 6 ans.

+0

... bien qu'il ne fonctionne pas. – Stephan

+0

Maintenant, il le fait, il réinitialise même 6 à 1. –

0

plus facile avec modulo:

@echo off & setlocal 
(<count.txt set /p count=) 2>nul 
set /a count=count %% 5 + 1 
>count.txt echo %count% 
type count.txt 
Questions connexes