Ich will Makros nach jeder Sitzung auf wunsch in einer Batch-Datei Speichern können und mit dem Befehl find soll ich die Makrodefinitionen aus der Befehlsliste herrausfiltern. Wie muß das aussehen?
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
Was für Makros (Word-Macros,alte Excel Macros, VB Macros, Tacl Macros usw....) Soll der Macro sich selbst in die Batch-Datei schreiben. Handelt es sich um Batch Dateien unter DOS oder Shellscripte unter Linux bzw. unter welchem anderen BS ??
Du solltest wenigstens die Aufgabenstellung ordentlich vormulieren können, wenn Du erwartest das Dir geholfen wird !!!
repi
Ja eine Batch-Datei unter dos
Bitte beantworte doch mal die ganze Frage von mir !
Was verstehst Du unter ... nach jeder Sitzung ?
Das Herunterfahren des BS, Die Nutzung des ominösen Makros , das Schließen der Anwendung welche den Makro verwendet , oder was ??
repi
Hi!
Das ist doch im Prinzip die gleiche fRage, die du schonmal gestellt hast, nur etwas anders formuliert, oder?
Ich meinen deine Frage hier.
Hast du seitdem schon irgendetwas probiert oder programmiert? Könne wir das sehen? Falls nein, warum nicht?
Zusätzlich würde mich immer noch interessieren, was das für Aufgaben sind? Ist das etwas aus der Berufschule? Gehört das in ein Seminar?
Ich weiss, dass ich schon zum dritten Mal frage... ;-)
Was dein konkretes Problem angeht:
Hast du FIND (den DOS-Befhel, der auch bei MSDOS 5.0 dabei ist...) schon einmal genutzt oder dir die Hilfe dazu angesehen?
Ich hab' (wie repi) keinen Plan, was das für Macros sein sollen bzw. wie die aussehen. ich weiss aber, dass man mit FIND Zeichenketten in Dateien suchen kann (Zeilen, die die Zeichenkette enthalten werden von FIND ausgegeben).
Ohne genauere Info werden wir dir nicht weiterhelefn können. Damit meine ich allerdings NICHT, dass du uns wieder den kompletten Aufgabentext abtippst... ;-)
Gib' uns lieber ein paar Infos über die Makros und für was das ganze gut sein soll. 8Ich kann mir nicht vorstellen, dass eine derart komplexe Aufgabe einfach frei zwischen den Sternen im luftleeren Raum schwebt - da muss etwas dazu gehören....
Bisheriger Lösungsvorschlag:
------------
@echo off
echo 42
------------
Bis denn
Andreas
Ich habe es dir schon mal gesagt, es sind Aufgaben aus einem DOS-Aufgaben heft was ich lernen wollte aber es halt nicht bringe, ich will es einfach nur fertig stellen und dann abharcken!!! Und ohne euch wird es einfach nichts weil ich bei so "einfachen" scheiß schon nicht durch sehe. Das ist meine letzte komplexe Aufgabe wo es am anfang darum geht, eine komfortable Verwaltung von Makros mit hilfe von Batch-Dateien zu erstellen. Mit einem Auswahl Menü usw. und am Anfang brauche ich eine Batch mit der ich auf Wunsch nach jeder Sitzung an meinem pc die Makros sichern kann. Dazu soll ich mit find die Makrodefinitionen aus der Befehlsliste filtern. Dann kommt nachher das Menü usw. aber ich weiß nicht wie ich find dazu einsetzen muß, daher habe ich auch keinen Anfang!
Hi!
Sorry, das mit dem DOS-Aufgabenheft lese ich zum ersten mal. Ist das eine Fortbildungsgeschichte oder was schuliches?
Zu den Makros:
Aus der Befehlsliste filtern, hört sich gut an - nur gibt es unter DOS keine Befehlsliste, die irgendwo gespeichert wird.
Wenn die Befehlsliste quasi eine Protokolierung der eingebenen Befehlszeilen am DOS-Prompt (der Eingabezeile) ist, dann macht die Aufgabenstellung zar Sinn, weil man solch eine Liste mit FIND filtern kann - der Haken ist aber, dass DOS keine solche Liste erzeugt.
Soviel also zum Sinn der Aufgabenstellung.
Das nächste Problem ist, das AFAIK FIND immer nur eine Zeichenkette (=ein Suchbegriff = ein Makro-Name) suchen kann. Man kann nicht mehrere Suchbegriffe wahweise mit einem Aufruf bearbeiten.
Beispiel:
Wäre ein ein Makro CDBP und die Befehlsliste wäre in der Datei HISTORY.DAT gespeichert, dann kann man sich die Zeilen in HISTRORY.DAT ausgeben lassen, die CDBP enthalten:
FIND "CDBP" HISTORY.DAT
Das ist aber nichts geheimnisvollen, das ist schlicht und einfach die Standardfunktion von FIND. Ich hab' mir die Info dazu besorgt, indem ich mir die Onlinehilfe von FIND hab anzeigen lassen:
[Q:0]C:\>find /?
Durchsucht Dateien nach einer Zeichenfolge.
FIND [/V] [/C] [/N] [/I] "Zeichenfolge" [[Laufwerk:][Pfad]Dateiname[ ...]]
(gekürzt)
Will man das Makro CDWORD suchen, muss man einen zweiten FIND-Aufruf nutzen.
Mit den Parametern von FIND kann man die Ausgabe beeinflussen. Das schreiben der Fundstellen in eine Datei sollte mit Piping gehen.
Bis denn
Andreas
Hallo!
Das mach ich für mich nebenbei, mich hat es schon immer interessiert zu Programmieren und da bin ich zu diesen Heften gekommen. Habe mir so gedacht ist was altes und wen du das nicht begreifst, dann brauchst du mit c/c++ oder soetwas garnicht erst anfangen.
Wen ich sage mal gerade einen Makro erstellt oder benutzt habe, z.b.: doskey hdir=dir /p /s /ah wo müßte find suchen? Und irgendwo muß es doch eine Liste geben, denn laut meinem heft kann ich mir ja auch mit der Option /macros des Befehls doskey die Makros anzeigen lassen.
Hi!
Ja, alt ist das schon - aber nicht unbedingt ein Grund auf eine "echte" Sprache wie Basic, Pascal oder C/C++ zu verzichten. (Die Möglichkeiten der DOS-Batches sind IMHO einfach zu eingeschränkt.)
Auf DOSKEY wäre ich übrigends nicht geommen. :-)
Das liegt aber daran, dass mein 1.PC mit DRDOS ausgeliefert wurde und ich mich also mit DRDOS und Novell-DOS befasst habe.
Das war zwar vergleichbar mit MSDOS (auch auf Batch-Ebene), aber DRDOS brauchte kein DOSKEY, die History-Funktionen waren "festeingebaut".
Ich kann,was DOSKEY angeht, nichts testen (ist bei mir nicht installiert). Aber versuche mal, ob man Piping nutzen kann (also das Umlenken der Textausgabe auf andere Befehle oder in Textdateien):
DOSKEY /HISTORY >NEUDAT.TXT
Info:
> erzeigt die Datei
>> fügt an eine vorhandene Datei an
So kann man auch die Ausgaben von FIND verknüpfen.
Bis denn
Andreas
JA richtig aber die sind doch noch viel schwerer oder nicht?
Ja klar funktioniert, das leitet die vollständige liste der Befehle aus dem Zwischenspeicher in die Datei Neudat.bat nun muß ich mit find die Makrodefinitionen herrausfiltern, weil Befehle wie dir oder copy dort erst garnicht auftauchen sollen. Woran erkenne ich einen Makro, wie läßt der sich finden, ich habe jetzt die Befehle des gesamten Zwischenspeichers in der Datei, ich könnte mir jetzt mit doskey /macros diese anzeigen lassen oder nicht? aber dann habe ich es ja immer noch nicht mit find gefiltert.!?
Achso eigendlich kann ich mir doch dann gleich die Makros umleiten lassen (doskey /makros > Neudat.bat)oder nicht? Und nun die Makrodefinitionen filtern, das Befehle wie dir oder copy nicht dabei sind. Was ja eigentlich überflüssig ist, da ja nur Makros umgeleitet wurden. Ist das soweit richtig?
JA !!!!, hättest ja gleich schreiben können, dass es sich um Doskey Macrovereinbarungen handelt !!
Hi!
Ich denke mit DOSKEY /MAKROS wird eine Liste der angelegten Makros ausgegeben (also die Makros die DOSKEY verwaltet).
Das können natürlich maximal die sein, die auch mit der HISTORY-Funktion angezeigt werden, aber man muss ja nicht immer alle vorhandenen MAKROS nutzen.
Irgendwie ist das eine sehr merkwürdige Aufgabe... :-/
Ich würde sowas mit Turbo-Pascal erledigen. Mir wäre das mit DOS-Batchdateien zu umständlich. (Allerdings hab' ich sowieso schon einiges an Quelltexten, dass man für die Entwicklung einsetzen könnte.)
Bis denn
Andreas
Ja das ist sie ziehmlich komplieziert und das war erst der Anfang davon, selbst denn bekomme ich nicht zustande. OK hat jemand lust und Zeit mit mir die komplette aufgabe durch zu gehen? Bin total hin und habe auch nichts weiter im Netz gefunden was mir helfen könnte.
Hi, Andreas.
Ich bewundere Deine Bemühungen.
Generell werden unter DOS Makros nur mit Doskey gemacht.
doskey makroname=alle Befehle
Mit doskey /h (istory) wird der gesamte Speicher angezeigt,
mit doskey /m (acros) nur die vorhanden Makros.
Selbstverständlich kann man die Ausgabe vom Bildschirm in eine Datei umleiten, neu oder anhängen ist optional, und in dieser Datei kann man dann mit find "doskey" xxx.txt die Befehle ausfiltern.
Hi!
Danke für die Blumen.
Was DOSKEY nageht, ist das schön das dies alles geht - aber das muss ich nicht mehr wirlich alles ausprobieren, oder? ;-)
Ich weiss nicht, ob DRDOS auch Makros kannte, aber dieser alte COMMAND.COM-Ersatz konnte das auch (kann mich nicht an den Namen erinnern, war auf jedenfall Shareware und gab's auch für OS/2 und NT).
Ich hab' vor Jahren angefangen einen eigenen DOS-Prompteditor zu schreiben, den ich auch heute noch verwende. Der kennt auch Makros (allerdings nenne ich das dort ALIAS-Abkürzungen), also musste ich mich nie mit DOSKEY rumschlagen (ich hab' das Teil für Speicherverschwendung gehalten).
Ich hoffe ich hab' nichts verpoasst. ;-)
Bis denn
Andreas