windows - batchfiler - hvordan man udsender information fra dem i mere end en instans

Indlæg af Hanne Mølgaard Plasc

Problem



Er det muligt at output information fra en batchfil, med flere udgange.


F.eks.


test.bat > output.txt


derefter oprette 20 sekunder senere en ny fil


test.bat > output2.txt


etc. (Med processen kører stadig)

Bedste reference


Du behøver ikke give op, fordi du er begrænset til batch. Dette kan opnås ganske nemt


@ECHO off
:: Check if the script has ran before, and set the iteration
IF EXIST next.txt (
FOR /F "tokens=1" \%I in (next.txt) DO SET /A \_result=\%I+1> next.txt
) else (
SET /A \_result=^1> next.txt
)
:: Now the iteration is stored in a variable named \%\_result\%

echo test > output\%\_result\%.txt


Hvis du downloader en kopi af sed til Windows, bør det ikke være for svært at opnå et unikt navn med kronologi.


time /t | sed "s/:/\_/g" | sed "s/ /\_/">>time.txt
for /F "tokens=*" \%\%I IN (time.txt) DO echo test >> output-\%\%I.txt


Bemærk: Hvis du bruger Win Vista/7, skal du ændre dette til\% I i stedet for \%\% I