02. december 2003 - 15:13Der er
8 kommentarer og 1 løsning
kontrol af værdi i tekstfil
Jeg har en tekstfil der indholder et serienr. Dette serienr. bliver en højere hvergang vi printer en label. Problemet er at serienr. af uforklarlige årsager af og til, bliver nulstillet. Derfor kunne jeg godt tænke mig at lave et script der kontrollerer at værdien er over 120000. Hvis værdien er for lille skal en alarm vises. Tekstfilen indholder: [GLOBAL] Serieno=127492 Nogen forslag til script Tanken er så at dette script på en eller anden måde skal køre hver time.
Har du nogen forslag til et script der kan det? Jeg havde også tænkt på Scheduled task, men problemet her er at man kan ikke lave nogen særlig god styring af det. F.eks. hvis jeg vælger at det skal køre 1 gang i timen, så skal jeg angive i hvormange timer det skal køre. Jeg vil gerne have det skal køre altid. Altså en gang hver time i de næste mange år. Det ville måske også være fint hvis det kun kørte i i normal arbejdstid.
Jeg lavede engang et vbscript, som via scheduled task kørte hver 10. minut for altid - så det kan godt lade sig gøre. Scriptet generede en tekstfil, lignende den du har - så skal bare lige finde det frem, så skal jeg nok poste et script her.
@for /F "tokens=2 delims==" %%I in ('findstr Serieno txt.fil') do @if %%I LSS 120000 net send Bertel "Number to small"
txt.fil er filens navn net send Bertel "Number to small", er det der udføres hvis nummeret er mindre end 120000. I dette tilfælde sendes en besked til brugeren Bertel, der vil se det som en popup box.
Du gemmer linien i en .bat-fil som du sætter til at køre vha. "scheduled tasks"
sFile = "d:\test\serieno.txt" sAlertMsg = "Her er din besked når tallet er over 120000" iMax = 120000
Set oFSO = CreateObject("Scripting.FileSystemObject") Set oKeyFile = oFSO.GetFile(sFile) Set oFileStream = oKeyFile.OpenAsTextStream(1, 0) Do While oFileStream.AtEndOfStream <> True sLine = LCase(oFileStream.ReadLine) If InStr(sLine, "=") Then aTemp = Split(sLine, "=") If aTemp(0) = "serieno" Then iNumb = Int(aTemp(1)) Exit Do End If End If Loop Set oFileStream = Nothing Set oKeyFile = Nothing Set oFSO = Nothing
Endelig fik jeg tid til at tage mig af dette igen (Pinligt at have det åbent så længe). Men nu viser det sig at det ville være bedre at få fejlmeddelsen på en anden måde. Jeg vil gerne have en fil (serieno_error.txt) med følgende information: Serieno, dato, tid. Hvis fil (serieno_error.txt) eksisterer skal den nye fejl blot tilføjes i en ny linie i error filen. D.v.s. ingen MsgBox, blot skriv i fil
Så fik jeg løst det lille vb-script. Tak for hjælpen
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.