torsten2010
Goto Top

MS-DOS 5 autoexec.bat bzw. config.sys

mal was aus der nostalgischen guten Zeit ....

Hallo,

gibt es eine Möglichkeit bzw.ein Befehl womit man im Dos 5.0 sagen kann, das nach x-mal Starten eine Kalibrierung des Programmes erforderlich ist und den Startvorgang anhält?
Quasi:

10 x Starten dann Bildschirmusgabe

Das ganze passiert dann in der Autoexec.bat?

Hat jemand dazu eine Lösung bzw. ein paar schnipsel über?

Quasi:

Beim Lesen der Autoexec soll die datei "counter.txt" gelesen werden. if counter.txt kleiner 10, dann +1 und Startvorgang fortsetzten.
if counter.txt = / > 10 then echo Kalibrierung starten und Startvorgang halt.
Ist das so korrekt?

Mit Gruß

Flensi

Content-ID: 186348

Url: https://administrator.de/contentid/186348

Ausgedruckt am: 19.11.2024 um 18:11 Uhr

pieh-ejdsch
pieh-ejdsch 12.06.2012, aktualisiert am 22.06.2012 um 14:00:54 Uhr
Goto Top
moin flensjaeger,

erzeugt das zu startende Programm diese counter.TXT oder machst Du dies per extra Befehl?
Wird jedesmal eine Neue Zeile in die TXT geschrieben? Dann in etwa so:

@echo off
set "StartKal=10"  
set "CountFile=counter.txt"  

 rem bei weniger als Zeilenanzahl StartKal wird Programm gleich gestartet
(find /n /v "" <"%countfile%" ||goto NoKal ) 2>nul |find "[%StartKal%]X" 1>nul ||goto NoKal  

type nul > "%countfile%"   
echo Kalibrierung des Programmes erforderlich.
echo Programm Kalibrieren und dann bestaetigen zum Fortsetzen ...
echo oder Abbruch mit [STRG] + C
pause

:NoKal
 rem eine neue Zeile in Counter.TXT schreiben
echo X 1>>"%countfile%"  
echo Durchlauf Nummer:
 rem LFD-Nummer des Programmdurchlaufes anzeigen 
find /n /v /c "" <"%countfile%"  


 rem hier Programmstart
Programm

[Edit]
code Für einmal Programmstart bei Betriebssystemstart angepasst und Counter je Batchstart.
Befehlsverkettung für :Sprung mit Klammern versehen
[/Edit]

sonst könnte die Größe der counter.TXT über "dir" und "Find" ausgelesen werden.
eventuell gehts sogar über die Forschleife mit "%%~zi". (kann ich aber net genau sagen, bei command.com in Windows 7 Klappt es aber.)

Gruß Phil
Torsten2010
Torsten2010 13.06.2012 um 17:04:12 Uhr
Goto Top
Die counter.txt Datei erzeuge ich selber.
Mit dem Starten des PCs startet auch das Programm.
Das heißt die Abfrage muss gesetzt werden, bevor das Programm startet.
Wo erfolgt die Additon, also lese das Ergebnis aus und füge +1 hinzu. Wenn dann größer gleich 10 dann ...

Muss das über eine Schleife passieren?
Kann man das Auslesen (über find) und dann als Variable weiterverarbeiten?
Quasi Variable "Ergebnis find" +1 schreibe in Datei counter.txt?

Gruß Flensi

echo off
:kal
if exist counter.txt del counter.txt <--- Warum muss die Datei erst gelöscht werden?
:start
echo X 1>counter.txt
echo Durchlauf Nummer:
find /n /v /c "" <counter.txt
echo Kalibrierung des Programmes erforderlich.
echo Programm Kalibrieren und dann bestaetigen zum Fortsetzen ...
echo oder Abbruch mit [STRG] + C
pause
goto kal
ab hier Programmstart
pieh-ejdsch
pieh-ejdsch 13.06.2012 um 20:31:43 Uhr
Goto Top
moin flensjaeger,

Das heißt die Abfrage muss gesetzt werden, bevor das Programm startet.
Ja macht es.
Wo erfolgt die Additon, also lese das Ergebnis aus und füge +1 hinzu. Wenn dann größer gleich 10 dann ...
erledigt das Schreiben einer neuen Zeile und das Find nach Zeilennummer der Angabe.

Ist im Code oben angepasst.

Kann man das Auslesen (über find) und dann als Variable weiterverarbeiten?
wenn DOS 5.0 das in der Forschleife unterstützt -dann ja
for /f %%i in ('find /c /v "" ^<test') do set "Zeilen=%%i"  

Gruß Phil
Torsten2010
Torsten2010 18.06.2012 um 14:14:30 Uhr
Goto Top
Hallo Phil,

habe erst jetzt die Zeit gefunden um weiterzumachen.
Also er wirft mir hier ein Syntax Error aus:

Und er schreibt auch immer nur die erste Zeile in die Datei.
Durch >> wird er doch angewiesen das vorherige Ergebnis nicht zu überschreiben.
Warum macht er es dann trotzdem?
Das Auslese Ergebnis ist immer die 1.

Mit Gruß
Flensi
pieh-ejdsch
pieh-ejdsch 22.06.2012 um 14:12:07 Uhr
Goto Top
moin Flensi,

was denn genau für ein Syntax error? Bei welchem Befehl, wenn Du die Zeile Zerlegst?
Und er schreibt auch immer nur die erste Zeile in die Datei.
Na wenn der Batch so weiterrödelt (obwohl er ja bei Fehler Springen sollte) schreibt er die Datei doch auch neu.
Da müsste aber jedesmal die Aufforderung zum Kalibrieren kommen.
Ich hab die erste Zeile nochmal dahingehend angepasst, dass Find beim ersten Fehler den Goto hinbekommt.

Ich hab den Batch jetzt auch in der Command.com von Windows 7 getestet, da gehts (Vorher ist der Auch abgeschmiert).
Wenns nicht geht meld Dich.

Gruß Phil