Mein PC "lacht mich aus"!
Hallo,
Ich war über 30 Jahre als Serviceelektroniker im Außendienst tätig.
Die Kunden hatten ihr eigenes Wartungspersonal, welches manchmal überfordert war.
Ich habe, in meiner Freizeit,kleine Tools gebaut, um manche Aufgaben, ohne Vorkenntnisse verwirklichen zu können.
Zwischen anderem auch dieses Tool.
Eigentlich eine (ständig über Jahre wachsende) Sammlung von unterschiedlichen Aufgaben auf einer Bootdiskette.
Um die Übersicht zu verbessern, habe ich eine MENU.BAT erstellt und später auch eine INI.BAT für die Anpassung an unterschiedliche Versionen.
Das ROOT Verzeichnis der Diskette sieht aus wie folgt:
- DOS - das OS
- DRIVERS - für CD, ZIP und USB Laufwerk
- GHOST - eine Version von NORTON Sicherungsprogramm für die Festplattensicherung
- TOOLS - die Sammlung...
- Autoexec.bat
- command.com
-drvspace.bin
- io.sys
- load.sys
- msdos.sys
Die BAT Dateien sind im TOOLS\DAT\
- Die nachfolgende Lösung, bei dem sich u.U. einige die "Haare raufen werden", (aber: "unten blinden ist der einäugiger König),
habe ich mit Hilfe dieses Administrator Forum verwirklicht:
siehe: Aktuelles Datum als Verzeichniss Name
und: Im Batch mit Unbekanntem Ordner arbeiten
und... sie tut ihre Aufgabe...auch wenn sie mich "auslacht".
Siehe Bild.
Nun bin ich im Ruhestand, habe Zeit... und hoffe schon wieder auf euer Hilfe, um einige Fehler zu mindern, denn es gibt immer noch "Bedarf".
Für den ersten Anhaltspunkt zu erst die autoexec.bat:
Leider weis ich nicht, wo das Problem steckt und es gibt "einige" Batch die im Frage Kommen, also beginne ich mit dem Menü.
ACHTUNG NACHTRAG: Menü wirkt erst später! Und weil so viele Änderungen nicht erlaubt sind werde ich die nötige Teile unten hinzufügen.
BITTE um Verständnis.
Es besteht aus einer *.txt und einer *.bat Datei.
Falls nötig, werde ich weitere Teile nachliefern.
Das menu.txt
und nun MENU.BAT
Vorsorglich noch mask0.txt
Die "Lachzeichen" auf dem Bild entstehen, beim aufrufen von <NORTON COMMANDER>.
Was erzeugt diese Zeile?
Ich war über 30 Jahre als Serviceelektroniker im Außendienst tätig.
Die Kunden hatten ihr eigenes Wartungspersonal, welches manchmal überfordert war.
Ich habe, in meiner Freizeit,kleine Tools gebaut, um manche Aufgaben, ohne Vorkenntnisse verwirklichen zu können.
Zwischen anderem auch dieses Tool.
Eigentlich eine (ständig über Jahre wachsende) Sammlung von unterschiedlichen Aufgaben auf einer Bootdiskette.
Um die Übersicht zu verbessern, habe ich eine MENU.BAT erstellt und später auch eine INI.BAT für die Anpassung an unterschiedliche Versionen.
Das ROOT Verzeichnis der Diskette sieht aus wie folgt:
- DOS - das OS
- DRIVERS - für CD, ZIP und USB Laufwerk
- GHOST - eine Version von NORTON Sicherungsprogramm für die Festplattensicherung
- TOOLS - die Sammlung...
- Autoexec.bat
- command.com
-drvspace.bin
- io.sys
- load.sys
- msdos.sys
Die BAT Dateien sind im TOOLS\DAT\
- Die nachfolgende Lösung, bei dem sich u.U. einige die "Haare raufen werden", (aber: "unten blinden ist der einäugiger König),
habe ich mit Hilfe dieses Administrator Forum verwirklicht:
siehe: Aktuelles Datum als Verzeichniss Name
und: Im Batch mit Unbekanntem Ordner arbeiten
und... sie tut ihre Aufgabe...auch wenn sie mich "auslacht".
Siehe Bild.
Nun bin ich im Ruhestand, habe Zeit... und hoffe schon wieder auf euer Hilfe, um einige Fehler zu mindern, denn es gibt immer noch "Bedarf".
Für den ersten Anhaltspunkt zu erst die autoexec.bat:
@CLS
@SET SRCDRV=A:
@SET DISK=A:
@SET WORK=A:\TOOLS\DAT
@SET PROMPT=$p$g
@SET PATH=%DISK%\;%DISK%\DOS;%WORK%;%WORK%\BAT;%WORK%\BAS;
@PATH C:\;C:\DOS;C:\BAT;C:\DOS-UTLS;C:\DOS-UTLS\NU8;C:\DOS-UTLS\NC;%PATH%
@LH /L:1,12864 APPEND /E /X
@APPEND %DISK%\;%DISK%\DOS;%WORK%;%WORK%\BAT\*.TXT;
rem HauptMenu anzeigen
@CALL MENU
Leider weis ich nicht, wo das Problem steckt und es gibt "einige" Batch die im Frage Kommen, also beginne ich mit dem Menü.
ACHTUNG NACHTRAG: Menü wirkt erst später! Und weil so viele Änderungen nicht erlaubt sind werde ich die nötige Teile unten hinzufügen.
BITTE um Verständnis.
Es besteht aus einer *.txt und einer *.bat Datei.
Falls nötig, werde ich weitere Teile nachliefern.
Das menu.txt
REM W-Disk_01/21_07.06.2000/MOR-(c)..bm-magic..Menu Wahl
WINDOW 08,08,20,65 LEUCHTEND GELB AUF BLAU EXPLODE
ROWCOL 09,25 "***Wartung Disk PRA-PC***"
ROWCOL 10,16 "------------------------------------------"
ROWCOL 11,16 "<1> Konfiguration sichern /CNF"
ROWCOL 12,16 "<2> REPORT sichern & loeschen /REPORT"
ROWCOL 13,16 "<3> TRACE sichern & loeschen /TRACE"
ROWCOL 14,16 "<4> Defragmentieren /Defrag"
ROWCOL 15,16 "<5> PRA-PC sichern /BACKUP"
ROWCOL 16,16 "<6> PRA-PC wiederherstellen /RESTORE"
ROWCOL 17,16 "<7> ZIP, CD, > USB Laufw. laden /DRIVE-L"
ROWCOL 18,16 "<8> Norten Utility /NU"
ROWCOL 19,16 "<9> Norten Commander /NC"
WINDOW 21,15,23,57 LEUCHTEND WEISS AUF MAGENTA
ROWCOL 22,17
ASK "Wahl: 1 2 3 4 5 6 7 8 9 Wahl=" 123456789 DEFAULT=E
ROWCOL 24,0
SA /CLS
ROWCOL 1,0
und nun MENU.BAT
REM W-Disk_02/09_07.06.2000/MOR-(c)..bm-magic..Menu Wahl
@CALL %WORK%\INI
:BEGIN HauptMenu anzeigen
@BE %WORK%\MASK0.TXT
@ECHO OFF
@FOR %%a IN (FE DE MO) DO SET %%a=
@BE %WORK%\Menu.txt
@IF ERRORLEVEL E GOTO ENDE
@IF ERRORLEVEL 9 GOTO NC
@IF ERRORLEVEL 8 GOTO NU
@IF ERRORLEVEL 7 GOTO DRIVE-L
@IF ERRORLEVEL 6 GOTO RESTORE
@IF ERRORLEVEL 5 GOTO BACKUP
@IF ERRORLEVEL 4 GOTO DEFRAG
@IF ERRORLEVEL 3 GOTO TRACE
@IF ERRORLEVEL 2 GOTO REPORT
@IF ERRORLEVEL 1 GOTO CNF
:CNF 1 Konfiguration im TagOrd\CNF gesichert
@CALL %WORK%\CNF
@GOTO BEGIN
:REPORT 2 Prod. Reporte werden gesichert
@CALL %WORK%\REPORT
@GOTO BEGIN
:TRACE 3 TRACE werden gesichert
@CALL %WORK%\TRACE
@GOTO BEGIN
:DEFRAG 4 Festplatte wird defragmentiert
@CALL %WORK%\DEFRAG
GOTO DATA
:BACKUP 5 Backup erstellen
@SET MO=DUMP
IF %FE%==ON GOTO BEGIN
@CALL %WORK%\NAME
@CALL %WORK%\GHOST
GOTO DATA
:DATA 4a und 5a DATA zurueck laden
@BE %WORK%\MASK0.TXT
XCOPY %HEU%\DATA %QHV%\DATA /y /s /e < %WORK%\V.TXT
IF %MO%==DUMP GOTO BACKUPF
@BE %WORK%\MASK0.TXT
@BE %WORK%\DEFRAGF.TXT
GOTO BEGIN
:BACKUPF 5b DATA von BACKUP Erfolg
IF %FE%==ON GOTO BEGIN
@BE %WORK%\MASK0.TXT
@BE %WORK%\BACKUPF.TXT
GOTO BEGIN
:RESTORE 6 Backup zurueckladen
@SET MO=LOAD
IF %FE%==ON GOTO BEGIN
@CALL %WORK%\NAME
@CALL %WORK%\GHOST
GOTO BEGIN
:DRIVE-L 7 Treiber laden
@CALL %WORK%\DRIVE-L
GOTO BEGIN
:NU 8 NU aufrufen
@CALL C:\DOS-UTLS\NU8\NORTON.EXE
@GOTO BEGIN
:NC 9 NC aufrufen
@IF NOT EXIST C:\DOS-UTLS\NC\NC.EXE CALL %DISK%\TOOLS\DC\DC
@CALL C:\DOS-UTLS\NC\NC.EXE
:ENDE 10 Ende der MENU.BAT
@BE %WORK%\MASK0.TXT
@ECHO.
Vorsorglich noch mask0.txt
REM W-Disk_02/21_07.06.2000/MOR-(c)..bm-magic..LOGO
SA /CLS
ROWCOL 03,01 " _ _" LEUCHTEND ROT
ROWCOL 04,01 "(_)(_)" LEUCHTEND ROT
ROWCOL 03,72 " _ _" LEUCHTEND ROT
ROWCOL 04,72 "(_)(_)" LEUCHTEND ROT
ROWCOL 00,08 " _ _ " WEISS
ROWCOL 01,08 "| | (_)"
ROWCOL 02,08 "| |__ ____ __ ____ __ ____ ____ _ ___"
ROWCOL 03,08 "| _ \ | _ \/_ \ __ | _ \/_ \ / _ | / _ | | | / __)"
ROWCOL 04,08 "| (_) ) | | \ | \ | (__) | | \ | \ | ( (_) | ( (_) | | | ( (__ "
ROWCOL 05,08 "|____/ |_| |_| |_| |_| |_| |_| \____| \__ | |_| \___)"
ROWCOL 06,08 " _| |"
ROWCOL 07,08 " (___|"
ROWCOL 08,01
Die "Lachzeichen" auf dem Bild entstehen, beim aufrufen von <NORTON COMMANDER>.
Was erzeugt diese Zeile?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 2362522566
Url: https://administrator.de/contentid/2362522566
Ausgedruckt am: 24.11.2024 um 10:11 Uhr
44 Kommentare
Neuester Kommentar
Ich vermute mal es liegt an der @if NOT EXIST..., die ich um ehrlich zu sein nicht ganz verstehe.
Hast Du denn den NC mal in dem einen und mal in dem anderen Ordner liegen?
Nimm die Zeile
@if NOT EXIST C:\DOS-UTLS\NC\NC.EXE CALL %DISK%\TOOLS\DC\DC
mal komplett raus und teste dann.
Gruß, Chris
...btw scheint mir, dass %DISK% gar nicht deklariert wurde?
Hast Du denn den NC mal in dem einen und mal in dem anderen Ordner liegen?
Nimm die Zeile
@if NOT EXIST C:\DOS-UTLS\NC\NC.EXE CALL %DISK%\TOOLS\DC\DC
mal komplett raus und teste dann.
Gruß, Chris
...btw scheint mir, dass %DISK% gar nicht deklariert wurde?
Hallo,
dass der Norton-Müll Probleme mit der CodePage 850 hat, ist seit fast 40 Jahren bekannt.
…und wird auch im Wikipedia-Artikel beschrieben: de.m.wikipedia.org/wiki/Codepage_850
Gruß,
Jörg
dass der Norton-Müll Probleme mit der CodePage 850 hat, ist seit fast 40 Jahren bekannt.
…und wird auch im Wikipedia-Artikel beschrieben: de.m.wikipedia.org/wiki/Codepage_850
Gruß,
Jörg
Hallo Bohu,
das ist äußerst interessant:
ERRORLEVEL ist ein ganzzahliger numerischer Wert.
Ich weiß nicht mal was das EB Tool aus deinem
in der Textdatei macht, da das E gar nicht als Option angegeben wurde.
Ich würde in der Textdatei
und im Batch
schreiben.
Ob das dein Problem löst, weiß ich nicht.
@117471 hat einen guten Einwand gebracht. Aber
a) müsste das dann bei jedem Start des NC so aussehen (nicht nur aus dem Batchscript) und
b) würde ich erwarten viele gleiche Zeichen in einer Reihe zu sehen, wenn es sich um falsch dargestellte Rahmenzeichen handeln würde.
Erste Frage an dich ist: Tritt der Fehler nur auf wenn der NC aus dem Batchscript gestartet wird, oder auch wenn du ihn händisch aus der Eingabeaufforderung ausführst?
Ich persönlich habe einen anderen Verdacht. Wir hatten im Mammut Thread darüber geschrieben, dass du Zeilenumbrüche im Script für DOS anpassen musst. Solltest du da in der Vergangenheit einen Fehler gemacht haben, kann es sein dass GOTO an die falsche Stelle im Script (möglicherweise irgendwo in die Mitte einer Zeile) springt. Das könnte ich aber nur sehen, wenn ich tatsächlich die Originaldatei mit einem HEX Editor ansehen würde.
ABER du könntest tatsächlich deinen geposteten Code hier aus dem Forum wieder kopieren und die Zeilenumbrüche wie besprochen automatisch korrigieren lassen.
Grüße
Steffen
das ist äußerst interessant:
@if ERRORLEVEL E GOTO ENDE
Ich weiß nicht mal was das EB Tool aus deinem
DEFAULT=E
Ich würde in der Textdatei
ASK "Wahl: 1 2 3 4 5 6 7 8 9 Wahl=" 123456789E DEFAULT=E
und im Batch
@if ERRORLEVEL 10 GOTO ENDE
schreiben.
Ob das dein Problem löst, weiß ich nicht.
@117471 hat einen guten Einwand gebracht. Aber
a) müsste das dann bei jedem Start des NC so aussehen (nicht nur aus dem Batchscript) und
b) würde ich erwarten viele gleiche Zeichen in einer Reihe zu sehen, wenn es sich um falsch dargestellte Rahmenzeichen handeln würde.
Erste Frage an dich ist: Tritt der Fehler nur auf wenn der NC aus dem Batchscript gestartet wird, oder auch wenn du ihn händisch aus der Eingabeaufforderung ausführst?
Ich persönlich habe einen anderen Verdacht. Wir hatten im Mammut Thread darüber geschrieben, dass du Zeilenumbrüche im Script für DOS anpassen musst. Solltest du da in der Vergangenheit einen Fehler gemacht haben, kann es sein dass GOTO an die falsche Stelle im Script (möglicherweise irgendwo in die Mitte einer Zeile) springt. Das könnte ich aber nur sehen, wenn ich tatsächlich die Originaldatei mit einem HEX Editor ansehen würde.
ABER du könntest tatsächlich deinen geposteten Code hier aus dem Forum wieder kopieren und die Zeilenumbrüche wie besprochen automatisch korrigieren lassen.
Grüße
Steffen
Wenn du die FAQs hier zum Thema Bilder einmal wirklich gelesen hättest, würden deine eingebundenen Bilder auch mit Klick auf das "+" an richtiger Stelle im Text erscheinen anstatt zusammenhangslos und völlig aus dem Kontext gegriffen am Ende deines an sonsten recht amüsanten und lesenwerten Threads. Schade wenn es manchmal an solchen Kleinigkeiten hapert...
Aber heute ist zum Glück ja Freitag, Hausaufgaben Tag und es gibt ja immer noch den "Bearbeiten" Knopf, dein bester Freund bei sowas !
Dann auch gleich das Personal korrigieren sowie "unter" einer Oberfläche, diverse falsche Zeilenumbrüche und "tuten" tut eigentlich nur der Nachtwächter !
Aber heute ist zum Glück ja Freitag, Hausaufgaben Tag und es gibt ja immer noch den "Bearbeiten" Knopf, dein bester Freund bei sowas !
Dann auch gleich das Personal korrigieren sowie "unter" einer Oberfläche, diverse falsche Zeilenumbrüche und "tuten" tut eigentlich nur der Nachtwächter !
Hallo Bohu
Mich wird es erst im Juni wieder treffen, wenn Weizen und Gerste blühen. Da kann ich aber nicht auf Schnee hoffen
Grüße
Steffen
- Daraufhin habe ich das "E" durch "0" ersetzt. (Damit ich menu.txt nicht bearbeiten muss.)
Das konnte nicht funktionieren. Eine Reihe von IF RRORLEVEL ...
Abfragen muss immer mit dem größten möglichen Wert starten. 0 ist der kleinste.- Wenn ich nun "10" eingebe:
Nein, nein. Als Eingabe E und bei der Errorlevelabfrage im Batch 10, so wie ich dir die Zeilen oben vorgegeben habe.kommt kurz die "Lachzeile" und da nach startet <CNF> mit einem Unterschied zum Ende.
Dass hier auch die "Lachzeile" kommt, bestätigt mich in meiner Annahme, dass noch irgendetwas bei der Zeichencodierung oder den Zeilenenden in deinen Dateien nicht stimmt.Bei der Abfrage, ob man die Berichte löschen soll steht hier zusätzlich eine "0".
Das kommt daher, dass du 10 eingegeben hast. BE verarbeitet davon nur die 1 am Anfang, während die 0 auf den Monitor geschrieben wird.Wenn man "j" drückt (für Bestätigen) kommt "Syntaxfehler" und der Vorgang bricht ab.
Das kommt sicher davon dass die 0 nicht verarbeitet werden kann.- Habe zu erst wieder aus der "10" "E" gemacht.
Im IF ERRORLEVEL
? Nein, das kann nur verkehrt sein.- Wenn ich den >NC> beende und mit "NC" starte gibt es KEINE "Lachzeile.
Und darum glaube ich weiterhin, dass bei der Zeichencodierung oder den Zeilenenden in deinen Dateien etwas nicht stimmt.PS Bei mir schneit es, was SUPER ist. Ich hatte die letzten Tage "Heuschnupfen". Heute... WEG
Des einen Freud, des anderen Leid.Mich wird es erst im Juni wieder treffen, wenn Weizen und Gerste blühen. Da kann ich aber nicht auf Schnee hoffen
Grüße
Steffen
Hallo Bohu,
zuerst:
Grüße
Steffen
zuerst:
(Ich habe keine Ahnung, was EB Tool ist und möchte es nicht ärgern, sehe aber kein Zugsamenhang.)
Mea Culpa. Ich meinte das BE Tool (BE.EXE, BE.COM, was auch immer der genaue Name diese Programms für deine formatierte Aus- und Eingabe ist).- Warum habe ich dann, das "E" durch "10" ersetzt? Nur damit das EB Tool befriedigt wird?
Nein. IF ERRORLEVEL E
ist ein Syntaxfehler in Batch. Hier wird ein numerischer Wert erwartet, kein Buchstabe. Die 10 ist der Rückgabewert von BE, und ist die Position von E
in der Reihe möglicher Eingaben 123456789E
die du für das ASK
Kommando in der Textdatei definiert hast.Also: (___|" Um es photographieren zu können, habe ich "Pause" eingefügt und nur das "Eine" beibehalten.
Es ist reproduzierbar.
Ist es eine Spur?
Die Spur ist immer noch die, die ich dir geschrieben habe. Offensichtlich wird irgendwo in einen Speicherbereich hinein gelesen, in den nicht hineingelesen werden darf. Was genau das verursacht, kann ich nur mutmaßen. Ich denke immer noch du solltest Zeichencodierung und Zeilenenden in deinen Scripts prüfen, in dem du sie auf Diskette kopierst und bspw. unter Linux bearbeitest (schauen dass keine Umlaute oder ß drin sind, Zeilenenden ggf. mit unix2dos konvertieren, falls noch falsche dazwischen sind).Es ist reproduzierbar.
Ist es eine Spur?
Grüße
Steffen
Hallo Bohu
Davon abgesehen, ist es trotzdem noch relativ aufwendig.
Textdateien mit 2 Zeilen ...
... einmal mit DOS (0D 0A) und einmal mit UNIX Zeilenumbruch (nur 0A):
Wenn du Codierungsfehler in einem langen Script suchen willst, musst du schon mit Adleraugen an die Sache rangehen.
Grüße
Steffen
Du hast weiter oben geschrieben, das man es mit einem Hex Editor besser sehen kann. Kannst Du mir u.U. einen einfacher empfehlen?
Ich nutze PSPad für Windows. Das vereint einen Texteditor und HEX Editor in einem Programm. Gibt es aber nicht für Linux. Und ich kann dir leider auch keine Empfehlung für Linux geben.Davon abgesehen, ist es trotzdem noch relativ aufwendig.
Textdateien mit 2 Zeilen ...
Hello
World
Wenn du Codierungsfehler in einem langen Script suchen willst, musst du schon mit Adleraugen an die Sache rangehen.
Grüße
Steffen
Hallo Bohu,
tut mir leid dass du den Fehler nicht findest.
Es ist auf jeden Fall sinnvoll wenn alle Dateien mit einem Zeilenumbruch nach der letzten Zeile enden.
Hast du noch irgendwo eine Sicherung von der du BE neu installieren kannst?
Grüße
Steffen
tut mir leid dass du den Fehler nicht findest.
Z.B. - An Anfang jeder Zeile habe ich @ vorangestellt.
Das ist nach dem ersten @echo OFF
nicht mehr nötig. Schadet aber auch nicht.- Habe keine Leerzeichen, wegen am Anfang, noch am Ende der Datei.
Es ändert sich nichts.Es ist auf jeden Fall sinnvoll wenn alle Dateien mit einem Zeilenumbruch nach der letzten Zeile enden.
Übrigens, BE.EXE (Batch Enhancer)
Aha. Jetzt hab ich einen Anhaltspunkt. Logischerweise hatte Google bei nur BE keine sinnvollen Ergebnisse gebracht. Jetzt weiß ich was es ist. Aber viele Informationen dazu habe ich trotzdem nicht gefunden. Jedenfalls nichts, was ich aus dem Kontext deiner Textdateien nicht ohnehin schon vermutet hatte.Habe aber ein weiteres Problem. Mit Dem Untermenü CNF, (ich kann hier nicht richtig zählen) weiter oben.
So langsam glaube ich aber dass es an BE selbst liegt. Immer wenn du vorher BE aufgerufen hast, gibt's anschließend Probleme.Hast du noch irgendwo eine Sicherung von der du BE neu installieren kannst?
Grüße
Steffen
Hallo Bohu
Dazwischen liegen:
Grüße
Steffen
Ich dachte, wenn man es wieder als BE.EXE umbenennt, hat man wieder das Original und kann damit arbeiten.
In aller Regel nicht.Dazwischen liegen:
- Dein Texteditor, der nicht alle Zeichen korrekt darstellen kann, da es sich um Binärdaten handelt. Spätestens bei 0x00 Bytes ist Schluss.
- Die Forensoftware, die sicher auch noch mal Änderungen vornimmt.
- Mein Texteditor, der auch wieder Änderungen vornimmt.
PS habe die BE.EXE (Diskette und Original) auf dem DOS PC mit >FC /B< verglichen...kein Unterschied.
Hmm. Dann habe ich im Moment auch keine gute Idee mehr.Grüße
Steffen
Hallo,
Was sich übrigens auch aus urheberrechtlicher Sicht anbietet.
Die Ursache für deine Probleme habe ich Dir ja bereits vor 2 Tagen mitgeteilt. Die Norton-Software ist (bzw. war) schlichtweg fehlerhaft und stolpert über die Codepageeinstellungen (bzw. bringt diese ins Schleudern).
Gruß,
Jörg
Was sich übrigens auch aus urheberrechtlicher Sicht anbietet.
Die Ursache für deine Probleme habe ich Dir ja bereits vor 2 Tagen mitgeteilt. Die Norton-Software ist (bzw. war) schlichtweg fehlerhaft und stolpert über die Codepageeinstellungen (bzw. bringt diese ins Schleudern).
Gruß,
Jörg
Hallo Bohu
Rechts neben der Beschreibung gibt es das Feld "DOWNLOAD OPTIONS" und dort den "ISO IMAGE" Dropdown. Wenn du dort drauf klickst siehst du die ISO Downloadlinks für Diskette 1 bis 4.
Grüße
Steffen
Dort "lachte mich" ein Button: Download an.
Ich vermute du hast den Upload Button gesehen. Zum Download brauchst du keine Anmeldung.Rechts neben der Beschreibung gibt es das Feld "DOWNLOAD OPTIONS" und dort den "ISO IMAGE" Dropdown. Wenn du dort drauf klickst siehst du die ISO Downloadlinks für Diskette 1 bis 4.
Grüße
Steffen
Hallo Bohu
Aus
wird
Grüße
Steffen
(in der Hilfe stand, das > Zeichen der Zitat einleitet)
Richtig. Und zwar ein > gefolgt von einem Leerzeichen am Zeilenanfang.Aus
> Das ist ein Zitat.
Das ist ein Zitat.
Funktioniert bei mir tadellos ¯\_(ツ)_/¯Es löst zwar meine Probleme nicht, aber es lest meine Hoffnung auf eine mögliche Lösung steigen.
Ich hoffe es für dich.Grüße
Steffen
Hallo Bohu
Hmm. Verschachteltes
Ziehe das
Also, Zeilen 104 bis Ende des Scripts:
Grüße
Steffen
Hmm. Verschachteltes
SELECT CASE
mit GOTO
Sprung aus einem inneren CASE
Zweig in einen äußeren CASE
Zweig. Das könnte den BASIC Interpreter tatsächlich aus dem Konzept bringen.Ziehe das
ber:
Label mal heraus.Also, Zeilen 104 bis Ende des Scripts:
INPUT loes
SELECT CASE loes
CASE "j"
COLOR 12, 0
PRINT " Wirklich <j> /\ <n> & <CR>";
COLOR 14, 0
INPUT wir
SELECT CASE wir
CASE "j"
GOTO kil
END
CASE "n"
GOTO ber
END
END SELECT
CASE "n"
GOTO ber
END
END SELECT
ber:
PRINT " Die Berichte wurden aufgehoben."
COLOR 7, 0
GOTO ende
kil:
KILL qtext
KILL ztext
COLOR 7, 0
ende:
SYSTEM
Grüße
Steffen
Hallo,
Labels müssen bei den meisten Interpretern „übersprungen“ werden, was Du aber nicht tust. Wenn Du das nicht tust, hält er die Labels auch für Befehle.
Nach dem Color-Befehl in deinem Beispiel versucht er also, die Zeile „ende:“ als Befehl auszuführen und das führt zum Syntax Error.
Vermutlich reicht es schon, ein Weiteres "GOTO ende“ direkt vor das Label zu packen.
Gruß,
Jörg
Labels müssen bei den meisten Interpretern „übersprungen“ werden, was Du aber nicht tust. Wenn Du das nicht tust, hält er die Labels auch für Befehle.
Nach dem Color-Befehl in deinem Beispiel versucht er also, die Zeile „ende:“ als Befehl auszuführen und das führt zum Syntax Error.
Vermutlich reicht es schon, ein Weiteres "GOTO ende“ direkt vor das Label zu packen.
Gruß,
Jörg
Hallo Bohu
Wenn ich mir die Beschreibung zu OPEN ansehe
dachte ich erst, dass da ein Problem ist. Allerdings ist
Grüße
Steffen
Habe ich noch u.U. eine Datei die nicht geschlossen werden kann, oder etwas falsch/nicht deklariert?
Wenn ich mir die Beschreibung zu OPEN ansehe
...
OPEN file$ [FOR mode] [ACCESS access] [lock] AS [#]filenumber% [LEN=reclen%]
...
filenumber% A number in the range 1 through 255 that identifies the file while it is open.
...
und dann die Zeilen 85 - 90 in deinem ScriptOPEN file$ [FOR mode] [ACCESS access] [lock] AS [#]filenumber% [LEN=reclen%]
...
filenumber% A number in the range 1 through 255 that identifies the file while it is open.
...
OPEN ztext FOR INPUT AS #fh 'Zielberichtdatei oeffnen
DO UNTIL EOF(fh)
LINE INPUT #fh, text
b = b + 1
LOOP
CLOSE #fh
fh
eine Variable die in Zeile 16 mit der FREEFILE
Funktion initialisiert wurde und somit einen validen Wert zwischen 1 und 255 haben sollte. Andererseits ist Zeile 16 weit weg und ob der Wert in Zeile 85 noch gültig ist, weiß ich nicht. Du könntest also Zeile 16 mal direkt vor das Öffnen der Datei schieben.Grüße
Steffen
Hallo,
was heißt hier „das wäre zu schön“?
Das ist definitiv und reprudizierbar ein großer Fehler, den Du da eingebaut hast.
Übrigens ist diese GOTO-Schachtelei aus genau diesem Grund seit 25 Jahren ausgestorben. Und das aus genau dem guten Grund, den Du jetzt mühsam lernst.
Derartige Konstrukte werden übrigens nicht umsonst als „Spaghetticode“ bezeichnet
Gruß,
Jörg
was heißt hier „das wäre zu schön“?
Das ist definitiv und reprudizierbar ein großer Fehler, den Du da eingebaut hast.
Übrigens ist diese GOTO-Schachtelei aus genau diesem Grund seit 25 Jahren ausgestorben. Und das aus genau dem guten Grund, den Du jetzt mühsam lernst.
Derartige Konstrukte werden übrigens nicht umsonst als „Spaghetticode“ bezeichnet
Gruß,
Jörg
Hallo,
Naja, sagen wir mal so: Du musst es Dir schon aneignen. Du hantierst hier mit Techniken, die seit Jahrzehnten obsolet sind und bei denen meines Erachtens nach nicht einmal gewährleistet ist, ob diese überhaupt noch in dieser Form von modernen Betriebssystemen unterstützt werden.
Das ist natürlich legitim. Allerdings ist der Lernanspruch dabei natürlich enorm. Zum Einen, weil sich hier kaum noch jemand an so etwas erinnert bzw. das nie kennengelernt hat - und zum Anderen natürlich auch, weil das alles noch aus einer Zeit stammt, als der größte Teil der Dokumentation in Buchform erhältlich war.
Ich meine - QBasic wird seit ziemlich genau 30 Jahren nicht mehr gepflegt.
Was genau möchtest Du lösen? Fast alle Themen, die Du über deine Batch startest, sind obsolet: Norton war schon damals irrelevant und Datenträger (USB-Sticks, SSDs usw.) können nicht mehr defragmentiert werden. Und sollte noch mal eine Festplatte irgendwo in einem Windows-System auftauchen, kümmert sich die Aufgabenplanung.
Und was die "Lachzeichen" betrifft: Einzige Möglichkeit ist, den Softwarehersteller zu kontaktieren und ihn bitten, die seit über 30 Jahren bekannten Fehler zu fixen. Norton gehört übrigens zu Symantec.
Und falls Dir langweilig ist: Ich habe mir einen Hund gekauft, arbeite einen Tag pro Woche im GaLa-Bau und habe parallel dazu einen großen eigenen Garten. Es muss nicht immer IT sein...
Gruß,
Jörg
Naja, sagen wir mal so: Du musst es Dir schon aneignen. Du hantierst hier mit Techniken, die seit Jahrzehnten obsolet sind und bei denen meines Erachtens nach nicht einmal gewährleistet ist, ob diese überhaupt noch in dieser Form von modernen Betriebssystemen unterstützt werden.
Das ist natürlich legitim. Allerdings ist der Lernanspruch dabei natürlich enorm. Zum Einen, weil sich hier kaum noch jemand an so etwas erinnert bzw. das nie kennengelernt hat - und zum Anderen natürlich auch, weil das alles noch aus einer Zeit stammt, als der größte Teil der Dokumentation in Buchform erhältlich war.
Ich meine - QBasic wird seit ziemlich genau 30 Jahren nicht mehr gepflegt.
Gib es u.U. ein Beispiel, wie man es nach 25 Jahren lösen würde?
Was genau möchtest Du lösen? Fast alle Themen, die Du über deine Batch startest, sind obsolet: Norton war schon damals irrelevant und Datenträger (USB-Sticks, SSDs usw.) können nicht mehr defragmentiert werden. Und sollte noch mal eine Festplatte irgendwo in einem Windows-System auftauchen, kümmert sich die Aufgabenplanung.
Und was die "Lachzeichen" betrifft: Einzige Möglichkeit ist, den Softwarehersteller zu kontaktieren und ihn bitten, die seit über 30 Jahren bekannten Fehler zu fixen. Norton gehört übrigens zu Symantec.
Und falls Dir langweilig ist: Ich habe mir einen Hund gekauft, arbeite einen Tag pro Woche im GaLa-Bau und habe parallel dazu einen großen eigenen Garten. Es muss nicht immer IT sein...
Gruß,
Jörg
Hallo,
Naja - bis jetzt hast Du noch nicht einmal verstanden, dass es daran liegt, dass die von Dir verwendeten Technologien irgendwie "tot" sind. Somit fehlt die grundsätzliche Akzeptanz von Tatsachen
QBasic, Norton - das ist ungefähr so, als würdest Du versuchen, selber Eisenerz zu schmelzen um einen Motorblock für einen Königsegg-Sportwagen nachzubauen...
Wer soll das benutzen? Verzeichnisbäume kopiert man mit robocopy oder per "Drag & Drop".
Das muss einen natürlich nicht hindern, sich damit zu beschäftigen. Allerdings ist das Ganze dann etwas aufwändiger - von der Beschaffung alter Rechner / Betriebssysteme bis hin zur Beschaffung von Literatur nebst Einarbeitung.
Man könnte z.B. auf Flohmärkten nach alten Büchern Ausschau halten - IMO gab es da viel vom Markt & Technik Verlag und "Data Becker".
Gruß,
Jörg
Naja - bis jetzt hast Du noch nicht einmal verstanden, dass es daran liegt, dass die von Dir verwendeten Technologien irgendwie "tot" sind. Somit fehlt die grundsätzliche Akzeptanz von Tatsachen
QBasic, Norton - das ist ungefähr so, als würdest Du versuchen, selber Eisenerz zu schmelzen um einen Motorblock für einen Königsegg-Sportwagen nachzubauen...
Ich glaube, das es immer noch einen Bedarf dafür gibt.
Wer soll das benutzen? Verzeichnisbäume kopiert man mit robocopy oder per "Drag & Drop".
Das muss einen natürlich nicht hindern, sich damit zu beschäftigen. Allerdings ist das Ganze dann etwas aufwändiger - von der Beschaffung alter Rechner / Betriebssysteme bis hin zur Beschaffung von Literatur nebst Einarbeitung.
Man könnte z.B. auf Flohmärkten nach alten Büchern Ausschau halten - IMO gab es da viel vom Markt & Technik Verlag und "Data Becker".
Gruß,
Jörg
Hallo,
O.K. - die Tat wäre, dass Du dir historische Hardware, Software und Dokumentation beschaffst, die Grundlagen erlernst und im Anschluss unter Anwendung des erworbenen Fachwissens dein Problem löst.
Aktuell kennst Du nicht einmal die elementären Abläufe / Kontrollstrukturen.
So leid es mir auch tut - aber programmieren lernt man nun mal nur strukturiert und nicht durch Trial & Error und durch zusammenkopieren von „ergoogelten“ Inhalten.
„Konstruktiver" geht es momentan nicht.
Melde dich gerne wieder, sobald Du konkrete Fragen zu halbwegs aktueller Software hast.
Gruß,
Jörg
O.K. - die Tat wäre, dass Du dir historische Hardware, Software und Dokumentation beschaffst, die Grundlagen erlernst und im Anschluss unter Anwendung des erworbenen Fachwissens dein Problem löst.
Aktuell kennst Du nicht einmal die elementären Abläufe / Kontrollstrukturen.
So leid es mir auch tut - aber programmieren lernt man nun mal nur strukturiert und nicht durch Trial & Error und durch zusammenkopieren von „ergoogelten“ Inhalten.
„Konstruktiver" geht es momentan nicht.
Melde dich gerne wieder, sobald Du konkrete Fragen zu halbwegs aktueller Software hast.
Gruß,
Jörg
Hallo Bohu,
ich hab das Script minimal überarbeitet (nicht zu sehr da ich nicht testen kann).
Bei der Deklaration der Variablen ist mir aufgefallen dass Variable a ganz zu Beginn als Integer deklariert war, du sie aber auch als Stringvariable zum Lesen aus einer Datei genutzt hattest.
Grüße
Steffen
ich hab das Script minimal überarbeitet (nicht zu sehr da ich nicht testen kann).
Bei der Deklaration der Variablen ist mir aufgefallen dass Variable a ganz zu Beginn als Integer deklariert war, du sie aber auch als Stringvariable zum Lesen aus einer Datei genutzt hattest.
Grüße
Steffen
REM W-Disk_03/03_13.07.2013/MOR-(c)..bm-magic..CNF Erstellung
DIM zlw$, qpfad$, heu$, zdir$, zver$, qdat$, qtext$, ztext$, sdir$, such$, rueck$, qver$, que$, text$, loes$, ln$
DIM a%, b%, found%, fpos%, fh%
zlw$ = ENVIRON$("ZLW")
qpfad$ = ENVIRON$("QHV") + ENVIRON$("LSYS")
heu$ = ENVIRON$("HEU")
zdir$ = ENVIRON$("ZDIR")
zver$ = heu$ + "\" + zdir$
qdat$ = ENVIRON$("QDAT")
qtext$ = heu$ + "\quelle.txt"
ztext$ = heu$ + "\ziel.txt"
a% = 0
b% = 0
sdir$ = heu$
such$ = zdir$
CLS
GOSUB find
fdir:
sdir$ = heu$
such$ = zdir$
IF sdir$ = heu$ AND fpos% = 0 THEN GOSUB mdir:
RETURN find
mdir:
MKDIR heu$ + "\" + zdir$
RETURN find
find:
IF sdir$ = heu$ AND rueck$ = zdir$ THEN KILL zlw$ + "dir.txt"
IF sdir$ = heu$ AND rueck$ = zdir$ THEN GOTO main
SHELL "DIR " + sdir$ + " /B /A:D > " + zlw$ + "dir.txt"
OPEN zlw$ + "dir.txt" FOR INPUT AS #1
found% = 0
WHILE (NOT EOF(1) AND found% = 0)
LINE INPUT #1, ln$
fpos% = INSTR(ln$, such$)
IF (fpos% > 0) THEN found% = 1
WEND
CLOSE #1
IF (found% = 0) THEN rueck$ = "nicht": fpos% = 0 ELSE rueck$ = ln$
'PRINT "Im Pfad "; sdir$; " wurde "; such$; " als "; rueck$; " gefunden."
GOSUB fdir
RETURN
main:
qver$ = ENVIRON$("UVA")
que$ = qpfad$ + qver$ + qdat$
COLOR 10, 0
PRINT " 1. Quelle ist: "; que$
SHELL "DIR " + que$ + " /W /B /S >" + qtext$
qver$ = ENVIRON$("UVB")
que$ = qpfad$ + qver$ + qdat$
COLOR 10, 0
PRINT " 2. Quelle ist: "; que$
SHELL "DIR " + que$ + " /W /B /S >>" + qtext$
COLOR 15
PRINT " Das Ziel ist: "; zver$
COLOR 0, 7
PRINT " ACHTUNG! "
PRINT " Gleichnamige Dateien werden ueberschrieben! "
PRINT " Mit der richtigen Rheienfolge der Quellen, "
PRINT " kann man die richtige Datei behalten! "
PRINT " ********** "
SLEEP 4
COLOR 7, 0
CLS
OPEN qtext$ FOR INPUT AS #1 'QuellTextdatei oeffnen
DO UNTIL EOF(1)
LINE INPUT #1, text$
bef = "COPY " + text$ + " " + zver$
COLOR 14, 0
a% = a% + 1
PRINT "Nun wird "; a%; "Datei kopiert: "; bef
OPEN ztext$ FOR APPEND AS #2 'ZielTextdatei oeffnen
PRINT #2, a%; bef
CLOSE #2
SHELL bef
LOOP
CLOSE #1
SHELL "DIR " + zver$ + " /W /B /S > " + ztext$
fh% = FREEFILE
OPEN ztext$ FOR INPUT AS #fh% 'Zielberichtdatei oeffnen
DO UNTIL EOF(fh%)
LINE INPUT #fh%, text$
b% = b% + 1
LOOP
CLOSE #fh%
IF a% - b% > 0 THEN
COLOR 12, 0
PRINT " Es wurden "; a% - b%; "Dateien ueberschrieben."
SHELL "FC " + qtext$ + " " + ztext$ + " > " + heu$ + "\bericht.txt"
PRINT " Vergleiche "; heu$; "\bericht.txt"
SHELL "TYPE " + heu$ + "\bericht.txt |more"
SLEEP 3
GOTO kil
END IF
IF a% = b% THEN
PRINT " Es wurden "; b%; "Dateien erfolgreich kopiert."
END IF
PRINT " Sollen die Berichte geloescht werden <j> /\ <n> & <CR>";
INPUT loes$
IF loes$ = "j" THEN
COLOR 12, 0
PRINT " Wirklich <j> /\ <n> & <CR>";
INPUT loes$
IF loes$ = "j" THEN
GOTO kil
END IF
END IF
PRINT " Die Berichte wurden aufgehoben."
COLOR 7, 0
GOTO ende
kil:
KILL qtext$
KILL ztext$
COLOR 7, 0
ende:
SYSTEM
Hallo Bohu,
oh, die Variable hatte ich dann wohl übersehen.
Ich weiß nicht woran es noch liegen kann.
Grüße
Steffen
oh, die Variable hatte ich dann wohl übersehen.
a. Ich habe am Ende der DIM Zeile "bef$" eingetragen.
Hätte funktioniert. Natürlich nur wenn du im Script alle bef
durch bef$
ersetzt hättest.b. Als ich dann DIM bef AS STRING
Ja das ist die "lange Form" wie sie dann auch in späteren Basic Dialekten üblich wurden. Der Suffix $ an den Variablen bedeutet auch so viel wie AS STRING (und Suffix % so viel wie AS INTEGER).mit "n" beantworte ist die "Syntaxfehler" Meldung gelb
falls ich "j" antworte, erscheint die rote "Sicherheitsabfrage" und die "Syntaxfehler" Meldung ist rot.
Dann hat sich am Syntaxfehler selbst aber nichts geändert.falls ich "j" antworte, erscheint die rote "Sicherheitsabfrage" und die "Syntaxfehler" Meldung ist rot.
Ich weiß nicht woran es noch liegen kann.
Grüße
Steffen