Thursday, October 27, 2016

Batch-echo-binäroptionen

Hi im versuchen, eine binäre Datei innerhalb eines grundlegenden Batch-Skript, dass ive geschrieben zu speichern. Grundsätzlich möchte ich das Skript in der Lage sein, diese vordefinierte Datei an einem gewissen Punkt ausgeben, anstatt es von Grund auf neu zu erstellen. Wenn dies nicht möglich ist, dann müsste ich diese Datei separat mit der Batch-Datei, die dann verschieben würde es in den erforderlichen Speicherort, aber Id lieber diese Datei unsichtbar für den Benutzer, so dass es scheint, dass die Datei von innen generiert wird Die Charge. So ist dies möglich und wenn ja, wie Dank im Voraus. Gefragt Okt 24 13 um 20: 10WinSCP Freie SFTP, SCP und FTP-Client für Windows-Option Wenn keine Parameter angegeben werden, listet alle Script-Optionen und ihre Werte. Wenn nur ein Parameter angegeben ist, wird der Wert der Option angezeigt. Wenn zwei Parameter angegeben sind, setzen Sie den Wert der Option. Die unten angegebenen Standardwerte sind Standardwerte für die Anwendung. Die Anfangswerte einiger Optionen können unterschiedlich sein, wenn Sie die Konfiguration mit dem grafischen Modus teilen. Werte und Beschreibung offon Schaltet das Echo des auszuführenden Befehls um. Befehle betroffen: alle Voreinstellung: off offonabortcontinue Aktiviert den Batchmodus. Im Batch-Modus wird eine beliebige Eingabeaufforderung automatisch beantwortet und jede Eingabeaufforderung wird abgebrochen (nach kurzem Zeitintervall). Im Batch-Modus empfiehlt es sich, confirm auf off zu setzen, um Überschreibungen zu erlauben. Wenn der Batchmodus auf eine beliebige Eingabeoption eingestellt ist, wird automatisch negativ geantwortet. Es sei denn, die Aufforderung hat eine andere Standardantwort (z. B. eine Standard-Antwort 8220Reconnect8221 für eine Reconnect-Eingabeaufforderung), in welchem ​​Fall die Standardantwort verwendet wird (nach einem kurzen Zeitintervall). Siehe auch eine Option für die Wiederverbindung. Wertabbruch ist wie auf. Darüber hinaus wird das Skript abgebrochen, wenn ein Skriptbefehl fehlschlägt oder eine Auswahlfrage mit der Antwort 8220Abort8221 (oder ähnlich) beantwortet wird. Wenn gesetzt, um fortzufahren, wird eine beliebige Eingabeaufforderung automatisch mit 8220Skip8221, 8220Ignore8221 oder einer ähnlichen Antwort geantwortet. Die Aktivierung des Batchmodus setzt die Wiederverbindungszeit (reconnecttime Option unten) auf 120 Sekunden, sofern sie noch nicht gesetzt ist. Befehle betroffen: fast alle Voreinstellung: Abbruch für Befehle, die mit / script oder / command off für Befehle angegeben wurden, die bei der Eingabe angegeben wurden. Offon Schaltet Rückmeldungen (Überschreiben, etc.) um. Befehle betroffen: get. Put Default: off für Befehle, die mit / script oder / command auf für Eingaben angegeben wurden. Off ltsecgt Setzt das Zeitlimit in Sekunden, um die Wiederherstellung von gebrochenen Sitzungen zu versuchen. Wert deaktiviert jede zeitliche Begrenzung. Die Wiederverbindungszeit wird implizit auf 120 Sekunden gesetzt, wenn der Batchmodus (Batch-Option oben) aktiviert ist. Befehle betroffen: get. stellen. synchronisieren. Keepuptodate Default: off offon Schaltet um, ob Befehle fehlschlagen, wenn ein Platzhalter, der zum Auswählen von Dateien für eine Operation verwendet wird, keine Dateien enthält. Befehle betroffen: get. stellen. Rm Mv. Chmod Ls. Lls Beachten Sie, dass die Option den - filemask-Schalter von get - und put-Befehlen nicht beeinflusst. Default: off Beachten Sie, dass beim Zurücksetzen der gleichen Option ein vorheriger Wert überschrieben wird, wird dieser nicht angefügt. BeispieleEncoding Binärdateien in Batch-Dateien Die. mac Quellcode-Dateien sind für Ass486 Herbert Kleebauers 68K-like assember Um Com-Programme in Batch-Dateien einzuschließen, müssen Programme geschrieben werden, die nur Opcodes im Bereich 0x20 bis 0x7e (ohne lt gt amp) verwenden. Kleine Programme können direkt mit der Prozessor-Opcode-Tabelle codiert werden. Zwei Beispiele sind ech und myinput: ech ist ähnlich dem echo Befehl. Es schreibt die Befehlszeile nach dem ersten bis zum vorletzten Zeichen auf stdout (ohne eine nachlaufende CRLF) ech. mac myinput weist der Batchvariable myinput. mac eine Tastatureingabe zu. Bei größeren Programmen (mehr als ein paar Bytes) ist es einfacher, einen Um ein normales com-Programm in ein ascii-only-Programm umzuwandeln. Der Batch unten führt diese Aufgabe aus. ANMERKUNG: Sie müssen Ihr com-Programm mit ORG0x178 zusammenbauen, weil die ersten 120 Bytes für die Dekodierungsroutine benötigt werden, die durch das Konvertierungsprogramm eingefügt wird. Sechs Bits des ursprünglichen com-Programms werden in einem Ascii-Byte codiert, so dass Ihr Programm 47 KBytes nicht überschreiten darf. Die Dekodierungsroutine des Konvertierungsprogramms wird (genau wie MYINPUT und ECH) direkt mit ascii-only Opcodes geschrieben, der Rest des Programms ist ein normales com-Programm, das von sich selbst zu byte nur ascii konvertiert wird. Ein Beispiel für ein mit CONVERT generiertes Programm ist echoo. Echoo ähnelt dem Echo, aber Sie können auch binäre Zeichen enthalten, indem Sie den Hex-Code angeben: Als ein anderes Beispiel können Sie diese Methode verwenden, um einen Hex-zu-binären Konverter mit ascii-only Opcodes zu erzeugen. Auf diese Weise können Sie jede Binärdatei in eine Batchdatei aufnehmen. H2b hat einen String als Parameter. Jede Zeile in stdin, beginnend mit dieser Zeichenfolge, wird von Hex bis Binär konvertiert und in stdout geschrieben. Eine weitere Methode ist, eine doppelte ausführbare Datei zu machen. Eine solche Datei ist ein gültiges Batch-Programm und ein gültiges COM-Programm. Sie können solche Dateien mit folgendem Batch erzeugen: Beispielhaft hierbei handelt es sich um einen binären ausführbaren Batch-Header (Quellcode: echadd. mac), der zwei Funktionen unterstützt: e (echo) und (inkrement) Die Inkrementfunktion erhöht eine Dezimalzahl um 1. Beispiel: ube 123 schreibt 124 zu stdout (Anmerkung: Kein Platz nach und nach der Zahl erlaubt) Die Echofunktion ist ähnlich dem Standard-Echo-Befehl. Der Text nach dem Echo-Befehl wird in stdout geschrieben. Es wird kein ltCRgt ltLFgt angehängt. Sie können jedes Byte ausgeben, indem Sie den Hex-Wert (3c für lt oder 0d für ltCRgt.) Schreiben. T schreibt das aktuelle Datum in der Form yymmdd an stdout. Nach dem Schreiben des Befehlszeilentextes liest echo von stdin und schreibt zu stdout, bis ein ltCRgt oder ltEOFgt gelesen wird. Diese Byte-Übertragung von stdin nach stdout kann durch Unterbefehle modifiziert werden: l wandelt alle Zeichen in Kleinschreibung u konvertiert alle Zeichen in Großbuchstaben konvertiert alle Leerzeichen in. Wird bis zum ersten kopieren. (Bis zum zweiten und so fort). Wird nach dem ersten zu kopieren. (Nach dem zweiten und so weiter) Das muss das erste Zeichen in der Batchdatei sein und es dürfen keine Leerzeichen in den ersten 13 Zeilen vorhanden sein. Einführung Die folgenden Informationen werden als Referenz für das File Transfer Protocol (FTP) Befehle. Dieses Dokument beschreibt einen typischen Prozess für eine interaktive und automatisierte Batch-FTP-Sitzung, die auf einem PC mit Windows / XP läuft und eine Verbindung zu einem UNIX-System herstellt. Dieser Vorgang kann je nach den Hardware - und Softwarekonfigurationen der lokalen und entfernten Systeme leicht variieren. Wir haben erhebliche Anstrengungen unternommen, um sicherzustellen, dass die Dokumente und Software-Technologien korrekt und korrekt sind. Wir behalten uns das Recht vor, jederzeit und ohne Vorankündigung Änderungen vorzunehmen. Die in dieser Version ausgelieferte Funktion basiert auf den Erweiterungsanforderungen einer bestimmten Benutzergruppe. Die Absicht besteht darin, Änderungen zu liefern, wenn die Notwendigkeit entsteht und in einem Zeitrahmen, der von der Verfügbarkeit von Ressourcen abhängig ist. Copyright-Kopie 1987-2017 SimoTime Technologies Alle Rechte vorbehalten Eine interaktive FTP-Sitzung So starten Sie einen FTP-interaktiven Sitzungstyp ftp aus einem DOS-Befehlsfenster. Die DOS-Eingabeaufforderung sollte durch die FTP-Eingabeaufforderung ersetzt werden. Das FTP-Programm läuft nun auf dem lokalen System. Eine Verbindung (oder Sitzung) zu einem fernen System wurde nicht hergestellt. Der Hilfskommando oder. (Fragezeichen) ausgeführt werden kann, ohne an einem entfernten System angeschlossen zu sein und einen Druck (normalerweise auf dem Bildschirm) der FTP-Befehle auszuführen. Das folgende ist ein Beispiel eines FTP-Befehls, um die FTP-Hilfe-Informationen anzuzeigen. Das folgende ist ein typisches Ergebnis des Hilfskommandos, der auf einem PC mit Windows läuft. Der folgende FTP-Befehl führt die FTP OPEN (Verbindung herstellen) aus und zeigt die folgenden Meldungen an. Der folgende FTP-Befehl ändert das Verzeichnis auf dem fernen System und zeigt die folgende Meldung an. Der folgende FTP-Befehl erkennt den Pfadnamen des aktuellen Verzeichnisses auf dem fernen System und zeigt die Informationen an. Der folgende FTP-Befehl setzt den Dateiübertragungsmodus auf ASCII (dies ist die Voreinstellung für die meisten FTP-Programme) und zeigt die Informationen an. Der folgende FTP-Befehl kopiert eine Datei (im ASCII-Modus) vom lokalen System zum fernen System und zeigt die Informationen an. Der folgende FTP-Befehl setzt den Dateiübertragungsmodus auf BINARY (der Binärmodus überträgt alle acht Bits pro Byte und muss für die Übertragung von Nicht-ASCII-Dateien verwendet werden). ) Und zeigen die Informationen an. Der folgende FTP-Befehl kopiert eine Datei (im BINARY-Modus) vom lokalen System zum fernen System und zeigt die Informationen an. Der folgende FTP-Befehl beendet die FTP-Umgebung (wie Bye) und zeigt die Informationen an. Wenn der vorhergehende FTP-Befehl beendet ist, wird die DOS-Eingabeaufforderung angezeigt. Das Vorgehende ist ein typischer Prozess für eine interaktive FTP-Sitzung, die auf einem PC mit Windows / XP oder Windows / 7 läuft und mit einem UNIX-System verbunden ist. Dieser Vorgang kann je nach den Hardware - und Softwarekonfigurationen der lokalen und entfernten Systeme leicht variieren. Eine automatisierte Batch-FTP-Sitzung Die folgende Batchdatei (UPWIP001.BAT) startet eine FTP-Sitzung und übergibt den Namen einer Textdatei (UPWIP001.TXT) an das FTP-Programm. Diese Textdatei wird vom FTP-Programm verarbeitet und jede der Anweisungen in der Textdatei wird in der Reihenfolge verarbeitet, in der sie erscheinen. Im Folgenden finden Sie eine Auflistung des Inhalts der Textdatei (UPWIP001.TXT). Eine FTP-Befehlsliste Im Folgenden finden Sie eine Zusammenfassung der häufig verwendeten FTP-Befehle. Damit werden alle Einträge angezeigt, die mit dem Buchstaben b beginnen und den Buchstaben n irgendwo nach dem Buchstaben b haben. Zum Beispiel wird folgendes angezeigt. Ben, bingo, born, boon, bipartisan, bandit Folgendes wird nicht angezeigt. Wette, Junge Hier werden alle Einträge angezeigt, die mit dem Buchstaben b beginnen, den Buchstaben n in der 3. Position haben und einen 3-stelligen Namen haben. Zum Beispiel wird folgendes angezeigt. Ben Folgendes wird nicht angezeigt. Bingo, born, boon, bipartisan, bandit, boy Hier werden alle Einträge angezeigt, die mit dem Buchstaben b beginnen und den Buchstaben n in der 3. Position haben. Zum Beispiel wird folgendes angezeigt. Ben, bingo, bandit Folgendes wird nicht angezeigt. Eine Liste von Parametern für den DIR-FTP-Befehl Eine erweiterte FTP-Befehlsliste Im Folgenden finden Sie weitere Befehle, die beim Übertragen von Dateien zwischen einem IBM Mainframe und einem Windows - oder UNIX-Clientsystem verwendet werden. Außerdem enthält das Folgende Befehle, die beim Arbeiten mit Dateien mit Datensätzen mit variabler Länge erforderlich sind. Mit den erweiterten FOCUS-Befehlen von LOCSITE verwendete Parameter Im Folgenden sehen Sie ein Beispiel für den Befehl LITERAL und einen Befehl GET. Die Befehle werden auf dem Client ausgeführt und bewirken, dass das RDW (Record Descriptor Word) am Anfang jedes Datensatzes einer Datei mit Datensätzen mit variabler Länge enthalten ist. Im Folgenden sehen Sie ein Beispiel für den Befehl LOCSITE und einen PUT-Befehl. Die Befehle werden auf dem Host ausgeführt und bewirken, dass das RDW (Record Descriptor Word) am Anfang jedes Datensatzes einer Datei mit Datensätzen mit variabler Länge enthalten ist. Im Folgenden ist ein Beispiel für den Befehl LOCSITE für den Zugriff auf Banddateien mit variablen Längenrückholungen aufgeführt. Der Befehl wird auf dem Host ausgeführt und bewirkt, dass das RDW (Record Descriptor Word) am Anfang jedes Datensatzes einer Datei mit Datensätzen mit variabler Länge enthalten ist. Zusammenfassung Der Zweck dieses Dokuments ist es, eine schnelle Referenz zum Verbinden und Austauschen von Informationen zwischen zwei Systemen bereitzustellen. Dieses Dokument beschreibt einen typischen Prozess für eine interaktive oder automatisierte Batch File Transfer Protocol (FTP) - Sitzung auf einem PC mit Windows / 2000 und die Verbindung zu einem UNIX-System. Dieser Vorgang kann je nach den Hardware - und Softwarekonfigurationen der lokalen und entfernten Systeme leicht variieren. Dieses Dokument kann verwendet werden, um als Tutorial für neue Programmierer oder als schnelle Referenz für erfahrene Programmierer zu unterstützen. In der Welt der Programmierung gibt es viele Möglichkeiten, um ein Problem zu lösen. Dieses Dokument und die Verknüpfungen zu anderen Dokumenten sollen ein besseres Bewusstsein für die Alternativen der Datenverwaltung und der Anwendungsbearbeitung schaffen. Die Dokumentation und Software wurde auf Systemen entwickelt und getestet, die für eine SimoTime-Umgebung auf der Basis von Hardware, Betriebssystemen, Benutzeranforderungen und Sicherheitsanforderungen konfiguriert sind. Daher können Anpassungen erforderlich sein, um die Aufträge und Programme auszuführen, wenn sie an ein System mit einer anderen Architektur oder Konfiguration übertragen werden. SimoTime Services hat Erfahrung in der Übertragung oder gemeinsamen Nutzung von Daten oder Anwendungsverarbeitung in einer Vielzahl von Systemen. Für weitere Informationen über SimoTime Services oder Technologien senden Sie bitte eine E-Mail an: helpdesksimotime oder rufen Sie 415 883-6565 an. Wir freuen uns, von Ihnen zu hören. Software-Vereinbarung und Haftungsausschluss Die Erlaubnis, Software, Dokumentation oder Schulungsmaterial zu jedem Zweck zu verwenden, zu kopieren, zu modifizieren und zu verteilen, erfordert eine Gebühr an SimoTime Technologies. Sobald die Gebühr von SimoTime eingegangen ist, wird die neueste Version der Software, der Dokumentation oder des Schulungsmaterials ausgeliefert und eine Lizenz für die Nutzung innerhalb eines Unternehmens gewährt, vorausgesetzt, der SimoTime-Urheberrechtshinweis erscheint auf allen Kopien der Software. Der SimoTime-Name oder das Logo dürfen ohne schriftliche Genehmigung von SimoTime Technologies in keiner Werbung oder Werbung für die Nutzung der Software verwendet werden. SimoTime Technologies übernimmt keinerlei Gewährleistung oder Zusicherungen bezüglich der Eignung der Software, Dokumentation oder Lernmaterialien zu jeglichen Zwecken. Sie wird ohne jegliche ausdrückliche oder stillschweigende Gewährleistung einschließlich der impliziten Garantien der Marktgängigkeit, der Eignung für einen bestimmten Zweck und der Nichtverletzung zur Verfügung gestellt. SimoTime Technologies haftet nicht für direkte, indirekte, spezielle oder Folgeschäden, die aus dem Verlust von Nutzungen, Daten oder Projekten entstehen, sei es bei Vertragsabschlüssen oder unerlaubter Handlung, die sich aus oder im Zusammenhang mit der Nutzung oder Durchführung dieser Software ergeben , Unterlagen oder Schulungsunterlagen. Downloads und Links Dieser Abschnitt enthält Links zu Dokumenten mit zusätzlichen Informationen, die über den Umfang und Zweck dieses Dokuments hinausgehen. Die erste Gruppe von Dokumenten kann von einem lokalen System oder über eine Internetverbindung verfügbar sein, die zweite Gruppe von Dokumenten erfordert eine Internetverbindung. Hinweis: Eine SimoTime-Lizenz ist erforderlich, damit die Elemente auf einem lokalen System oder Server verfügbar gemacht werden können. Aktueller Server oder Internet-Zugang Folgende Links sind möglicherweise auf dem aktuellen Server oder Internet verfügbar. Hinweis: Die neuesten Versionen der SimoTime-Dokumente und Programmsuiten sind im Internet verfügbar und können über das Symbol aufgerufen werden. Wenn ein Benutzer über eine SimoTime Enterprise-Lizenz verfügt, können die Dokumente und Programmsuiten auf einem lokalen Server verfügbar sein und über das Symbol zugegriffen werden. Entdecken Sie Beispiel-FTP-Skripts und Windows-Befehlsdateien (FTP), die Dateien zwischen einem Mainframe-Host-System und einem Windows-Client-System übertragen. Entdecken Sie die Alternativen für die Übertragung von Dateien zwischen Systemen. Dieser Link bietet Zugriff auf ein Repository von Informationen, die das Übertragen und / oder das Teilen von Daten zwischen Mainframe (ZOS oder VSE), Linux, UNIX und Windows Systems umfassen. Entdecken Sie die ASCII - und EBCDIC-Übersetzungstabellen. Diese Tabellen sind für Personen vorgesehen, die die Bitstrukturen und Unterschiede der Kodierungsformate besser verstehen müssen. Entdecken Sie die File Status Return Codes, um die Ergebnisse des Zugriffs auf VSAM-Datensätze und / oder QSAM-Dateien zu interpretieren. Internet-Zugang erforderlich Die folgenden Links benötigen eine Internetverbindung. Ein guter Ausgangspunkt ist die SimoTime Home Page über Internet Connect für den Zugriff auf Whitepaper, Programmbeispiele und Produktinformationen. Entdecken Sie die Micro Focus Web-Site über Internet Connect für weitere Informationen über Produkte und Dienstleistungen von Micro Focus. Glossar Das SimoTime Glossar enthält eine Liste der Begriffe und Definitionen, die in den von SimoTime bereitgestellten Dokumenten verwendet werden. Kommentare oder Feedback Dieses Dokument wurde erstellt und ist von SimoTime Technologies urheberrechtlich geschützt. Wenn Sie Fragen, Anregungen, Kommentare oder Feedback haben, rufen Sie uns an oder senden Sie eine E-Mail an: helpdesksimotime Wir freuen uns, von Ihnen zu hören. Company Overview SimoTime Technologies wurde 1987 gegründet und ist ein privates Unternehmen. Wir sind spezialisiert auf die Erstellung und Implementierung von Geschäftsanwendungen mit neuen oder bestehenden Technologien und Services. Wir haben ein Team von Einzelpersonen, die das breite Spektrum der Technologien verstehen, die in heutigen Umgebungen verwendet werden. Zu unseren Kunden gehören kleine Unternehmen mit Internet-Technologien für Unternehmen mit sehr großen Mainframe-Systemen. Oft, um größere Märkte zu erreichen oder ein höheres Maß an Service für bestehende Kunden zu schaffen, bedarf es der neueren Internet-Technologien, um komplementär mit bestehenden Großrechnern zu arbeiten. Wir sind spezialisiert auf die Vorbereitung von Anwendungen und die damit verbundenen Daten, die sich derzeit auf einer einzigen Plattform befinden, die über eine Vielzahl von Plattformen verteilt werden soll. Die Vorbereitung der Anwendungsprogramme erfordert die Übertragung von Quellmitgliedern, die auf der Zielplattform erstellt und bereitgestellt werden. Die Daten müssen zwischen den Systemen übertragen werden und müssen möglicherweise in verschiedenen Stadien des Prozesses konvertiert und validiert werden. SimoTime hat die Technologie, die Dienstleistungen und die Erfahrung, um die Anwendung und die Datenmanagementaufgaben zu unterstützen, die mit dem Tätigen des Geschäfts in einer Multisystemumgebung verbunden sind. Ob Sie das Internet nutzen, um in neue Marktsegmente oder als Auslieferungsfahrzeug für bestehende Business-Funktionen zu expandieren, rufen Sie uns einfach an oder besuchen Sie die Website unter www. simotime File Transfer Protocol (FTP), eine Liste der FTP CommandsEncoding Binary Data In Batch-Code Ich schrieb dies bis Anfang 2002, aber nicht post es für ein paar Gründe. Der Hauptgrund dafür war der BASM-DOS-Compiler wurde durch eine Windows-basierte Version ersetzt. Tokiwa verschwand auch, oder zumindest versteckte ich das letzte Mal sah ich. ASIC ist immer noch im Archiv und die Moonrock Seite funktioniert, zumindest gibt es ein paar tiny-com Compiler der moderne einfache Problemlöser verwenden können. Vor kurzem bemerkte ich ein erneutes Interesse daran, wie ascii Assembler funktioniert, und selbst wenn meine Anwendung ist ein bisschen extrem dieses Dokument bietet eine anständige Übersicht und Links zu Tools. Man schreibt den Ascii-Assembler in der Regel nicht von Hand, wenn es geholfen werden kann, stattdessen werden Codierungs - / Decodiertechniken verwendet, um vorhandenen Maschinencode in Batch-Code zu übersetzen. NT-ähnliche Betriebssysteme neu definieren, was legal ist, seien Sie sehr vorsichtig mit einigen der rohen Übersetzer, da sie Ausgabecode NT / XP / etc wird nicht korrekt interpretieren, wenn Maschinencode beteiligt ist, können die Ergebnisse unberechenbar sein, warum ich eine komplizierter, aber Kompatiblen Ansatz. Wenn ich schlau genug war, um einen kompatiblen einstufigen Encoder zu schreiben würde ich aber im meistens Batch-und High-Level-, Maschinen-Code ist nicht mein Ding, es sei denn, seine für ein PIC. Standard Disclaimer, nicht verantwortlich, wenn Sie Ihren Computer mit diesen Techniken und Programme braten. Maschinencode kann fast alles tun, einschließlich schrecklich Absturz des Computers der fehlerhafte Code läuft auf. Wer weiß, dass mein Code einen Fehler haben könnte, kann ich nur sagen, es funktioniert auf meinem Windows 95-Rechner, und die Ausgabe läuft unter XP. Der Batch-Code wird wahrscheinlich brauchen Anpassung an Ihre Umgebung, wenn verwendet, vor allem CONV2BAT, da es so compiler-spezifisch ist. Wenn Sie solche Dinge tun müssen, haben Sie wahrscheinlich andere spezifische Bedürfnisse, erwägen Sie Ihre eigene Lösung, die am besten zu Ihren Bedürfnissen passt, wobei Code hier und anderswo als Beispiele. Viele Male bei der Programmierung im Batch ist es notwendig, binäre Daten der einen oder anderen Art zu verwenden, sei es ein Hilfsprogramm oder einfach eine Datei ohne Rückkehr am Ende. Für den Zweck dieses Artikels bedeutet binär eine Folge von Bytes, wobei die Bytes einen beliebigen Wert ohne Einschränkung annehmen können und ein Maschinencodeprogramm, eine gif-Datei oder jede beliebige andere beliebige Datei darstellen können. Wichtig ist, dass die Reihenfolge exakt bleiben muss, es können keine systembedingten Veränderungen oder Fehlfunktionen auftreten. MsDos Batch ist eine ascii-basierte Sprache, die nur Dateien schreiben kann, die in CrLf enden (Ascii 13, 10), und können nicht direkt bestimmte Zeichen schreiben, die andere Dinge für das System bedeuten, es sei denn, spezifische Schritte werden zur Sicherstellung der syntaktischen Legalität gemacht. Die meisten der Zeit Batch-Dateien sind geschrieben, um bereits vorhandene Binärdateien verwenden, aber es gibt Zeiten, wenn eine einzelne Datei-Lösung wäre besser, vor allem bei der Verteilung einer Lösung für andere zu verwenden, sondern auch zu vermeiden, dass die Akkumulation extra Dateien für triviale Zwecke. Genau wie jedes Programmier-Tool gibt es Vorteile und Nachteile. Vorteile: Binary-to-Batch (Bin-Batch) Codierung Techniken ermöglichen Batch-Programmierer, um jede kleine Datei nach Bedarf neu erstellen. Bin-Batch-Werkzeuge lassen den Batch-Programmierer komplexe Funktionen in einer echten HLL (High-Level-Sprache) schreiben und dann in Batch-Code umwandeln, anstatt sich auf unzuverlässige versionsspezifische Batch-Hacks zu verlassen (wenn die Funktion sogar im Batch-Modus ausdrückbar ist). Sorgfältig aufgebaute Bin-Batch-Code kann auf allen bekannten DOS-Plattformen von den frühesten MsDos mit Echo und Umleitung auf Windows XP laufen, solange die zugrunde liegende App kompatibel ist. Bin-Batch-Text kann nicht durch Com-Infektion von Viren geändert werden und ist sicherer zu verteilen als rohe com-Dateien, vorausgesetzt natürlich die Dateien sind sauber zu beginnen. Jede Änderung ist sichtbar und verändert die Art der codierten ascii quotreadsquot (Phrasen, die zufällig in einem bestimmten routinemäßig codierten Text erscheinen). Nachteile: Encoding verdunkelt den ursprünglichen Inhalt, und die Menschen sind Angst vor Code, der nicht erkannt werden kann. Je nach Kontext ist bin-Batch nicht mehr und wohl weniger gefährlich als einfach nur die Binärdateien mit dem Batch zu verteilen, allerdings in einem Bereich, in dem Binärdateien generell nicht erlaubt sind, wie etwa eine Diskussions-Newsgroup. Posting bin-Batch-Code können Sie weitgehend geflammt, in alt. msdos. batch nur sehr kleine Binärdateien von bekannten Autoren geduldet werden. Bin-Batch-Code ist immer ein wenig langsamer als nur den Zugriff auf bereits vorhandene Binärdateien, und es fügt eine andere Ebene der möglichen Inkompatibilität. Das Erstellen von ausführbaren Binärdateien kann on-the-fly gegen Unternehmenspolitik oder spezifische Genehmigung sein. Einige Anti-Virus-Programme (AV-Programme) verhindern die Erstellung von ausführbaren Code, wenn sie aktiviert sind. Andere AV-Programme verlangsamen Bin-Batches, weil sie jede Zeile der Binärdatei, wie sie auf die Festplatte geschrieben wird, scannen muss. Die Verwendung eines separaten Decodierers verringert den Scan-Overhead erheblich, indem die Binärdatei in einem gescannten Schritt erzeugt wird (nur der Decoder muss zeilenweise abgetastet werden) oder das com in eine Datei mit einer nicht ausführbaren Erweiterung schreiben und dann umbenennen. Binary-to-Batch-Encoding-Techniken Der alte MsDos-Debug-Befehl ist wahrscheinlich die häufigste Methode, Binärdaten für Batch zu kodieren, der Befehl ist auf den meisten Systemen verfügbar, aber es ist möglich, dass der Benutzer es entfernt oder umbenannt hat, und wenn das Booten von Diskette youll machen muss Dass der Debug-Befehl verfügbar ist, indem Sie ihn auf die Festplatte legen. Debug mehr als verdreifachen die nicht codierte Datei Größe, so ist am besten für sehr kleine Routinen verwendet. Es stehen zahlreiche Debug-Encoding-Dienstprogramme zur Verfügung. Es ist möglich, kleine Maschinencode-Programme zu schreiben, die vollständig aus batch-rechtlichen Zeichen bestehen und sie direkt an eine com-Datei zur Ausführung bringen. Diese Methode eignet sich für das Echo von Zeichen ohne CrLf, die Eingabe von Daten und andere einfache Funktionen, die ansonsten nicht einfach sein können Erfolgt im Batch. Das Schreiben eines solchen Quotascii-Assemblerquot-Codes ist jedoch eine mühsame Angelegenheit, auch wenn man mit der Assembler vertraut ist, oft enthalten die Ergebnisse mehr Code für das Patchen von inkompatiblen Bytes als für die Task selbst, aber die Utilities überschreiten selten nur ein paar Zeilen Ascii. Herbert Kleebauer und Laura Fairhead sind etablierte Experten in diesem Bereich und haben im Laufe der Jahre viele nützliche ascii Maschinencode Batch-Routinen auf der alt. msdos. batch newsgroup veröffentlicht. Zu den interessantesten von bin-batch-Dienstprogrammen gehören Com-File-Encoder. Nach dem Echo auf die Disk besteht die com-Datei aus einem Decoder, der vollständig aus batch-echoable Ascii-Zeichen besteht, gefolgt von einer ascii-codierten Darstellung des ursprünglichen Maschinencode-Programms. Wenn der Com läuft, decodiert der Decodierer den ursprünglichen Code und führt ihn aus, wenn alles gut geht, ist der ursprüngliche Code nicht bewußt für den Prozeß. Herbert Kleebauers Convert. bat-Programm erfordert, dass der Maschinencode versetzt montiert wird, um Platz für den Decoder zu schaffen. Laura Fairheads Cm3 Programm geht einen Schritt weiter und fügt eine Kopie Routine, so dass es zu codieren Standard-Com-Dateien. Die Methode, die ich abschloß, verwendet einen CM3-codierten Decodierer, der Daten von einer umgeleiteten Datei zu einer anderen decodiert, so daß jede kleine Datei genau codiert und neu erstellt werden kann, ungeachtet ihres Inhalts. Es gibt mehr oben laufende Maschinencode-Programme auf diese Weise, aber der gleiche Decodierer kann mehrmals verwendet werden, und der Decodierungsprozeß erzeugt nicht so viel AV-Scanner-Aktivität, da nur der Decodierer selbst Zeile für Zeile zu einer COM-Datei geschrieben wird. Ein Hauptgrund für das Gehen mit einem unterschiedlichen Decoder war, den Kodierungsprozeß selbst steuern zu können, CM3 erzeugte manchmal NT-inkompatibles Ausgangssignal auf der 2. Zeile. Binär-Batch-Echoregeln Der Code sollte aus Zeichen bestehen, die vollständig zwischen Ascii 32 und 127 liegen, wenn nicht dann nul, eof, bs, tab, cr, lf und wahrscheinlich andere Zeichen vermieden werden müssen. Muss überleben Editing. Vermeiden Sie Linien, die mit onspace oder offspace beginnen. Sie müssen Umleitungszeichen (ltgt) vermeiden, es sei denn umgeben durch Anführungszeichen. Prozentzeichen () müssen verdoppelt werden (), um einen einzelnen Prozentsatz in der Datei zu ergeben. NT - die Zeichen amp und muss vermieden werden. NT - Delimdigit am Ende einer Zeile vermeiden. Delim ist Platz, Semikolon oder Klammer, Ziffer ist 0-9. Tricky stuff Cross-Kompatibilität Informationen können schwer zu kommen, so kann es Fehler oder Auslassungen in den oben genannten werden. Am besten, um die Kodierung Methode einfach wie möglich zu halten, um Fehler mit einigen Plattformen zu vermeiden. Ein universeller Batch-kompatibler Encoder und Decoder Für mein Codierungsschema habe ich beschlossen, den Bereich von Zeichen von 256 bis 64 zu reduzieren, beginnend bei ascii 48 (quot0quot), um 1,5 Bytes pro Paar codierter Zeichen zu packen. Zur Sicherstellung der Batch-Kompatibilität werden ascii 58 bis 64 (quote to quotquot) und ascii 94 bis 96 (quotquot to quotquot) übersprungen. Dieses Codierungsschema erreicht nicht das Problem ascii 124-Pipe-Zeichen. Um meine Lösung zu erstellen, begann ich mit einem anderen Binär-Ascii-Encoder / Decoder-Paar namens Zencode / Zdecode von Tenie Remmel und ersetzte den 13-Bit (91-stelligen) Binär-Fetch-Code durch eigenen 12-Bit-Code sowie Änderungen an Offset und Skip wie benötigt. Ich modifizierte den Decodierer weiter, so daß er einen einzigen RET-Befehl ausgibt, falls die decodierte Größe nicht mit der Größe übereinstimmt, die zu Beginn der codierten Daten aufgezeichnet wurde. Nicht so gut wie eine Prüfsumme, aber zumindest bietet einige Schutz. Der Decodierer wird unter Verwendung von CM3 codiert, für Batch-Nutzung und - Verteilung kann der Codierer selbst codiert werden. Beachten Sie, dass mein Encoder in raw ascii konvertiert, Echo Umleitung zu einer Datei muss hinzugefügt werden, um in einem Batch enthalten. Hier ist ein Batch mit dem Decoder, den ich quotDecBinquot nennen und verwendet, um den Encoder, den ich callEncBinquot. Um eine Binärdatei manuell zu verschlüsseln, verwenden Sie den Befehl encbin run: encbin lt binary gt file, bearbeiten Sie dann die Datei und fügen Sie quotecho quot oder quotecho: am Anfang und die Umleitung zur gewünschten Datei am Ende jeder Zeile ein. Um dies automatisch als Teil eines Binär-Batch-Batches zu realisieren, stellt sich ein wenig Schwierigkeit dar, entweder muss die Symmetrie und Einfachheit des Encoder / Decoder-Paares durch Einschließen von Echo und Dateiumleitung in die Encoderausgabe unterbrochen werden, oder das Problem kann Einfach mit codierter HLL gelöst werden. Com-Datei Compiler und Conv2Bat. bat Mehrere BASIC-ähnliche Compiler produzieren Com-Dateien klein genug, um für die Batch-Nutzung zu codieren, so gut wie alle können auf der Basm-Seite gefunden werden (siehe Links). Jeder hat seine eigene Syntax, die gespeichert werden muss, zumindest wo in der doc-Datei die Informationen gefunden werden können. Zum größten Teil ist es wie reguläre einfache aber Ausdrücke müssen stark vereinfacht und einige der Befehle haben etwas andere Syntax. Basm arbeitet am besten für mich, aber jeder hat Stärken und Schwächen. Basm und Moonrock produzieren Montage-Quelle, die für Hand-Tweeking der Compiler-Ausgang verwendet werden kann. Basm bietet einfachen Zugriff auf stdin und stdout und produziert einfachen, stabilen Code, der auf jeder Plattform, die dos (Ich habe keine Informationen über NT / 2000 / XP-Kompatibilität, Id vermutlich wahrscheinlich ok) laufen sollte. Moonrock arbeitete mit allem, was ich schrieb, aber die bounce. moo Demo stürzt ab und nimmt Windows auf meiner Maschine. Asic ist die vollständigste, aber die com-Datei ist oft in der Größe aufgeblasen und muss mit PkLite oder gleichwertig komprimiert werden. Tokiwa tut Gleitkomma-Mathe, aber ich weiß nicht viel darüber. Die Compiler-Binärdateien und Batchdateien müssen sich in Pfadverzeichnissen befinden, so dass sie durch die Ausgabe einfacher dos-Befehle im Verzeichnis, in dem sich die Quelle befindet, betrieben werden können. Normalerweise werden Batches (c: pathprog. exe 1 2 etc) in einem Pfad-Verzeichnis verknüpft Compiler, aber einige Kommandozeilen-Parms können nicht weitergegeben werden (insbesondere asms quotquot No-Prompt-Option) und alles, was Redirection verwendet, um Eingabe oder Ausgabe zu spezifizieren, muss in binärer Form verfügbar sein. Auf meinem System habe ich Linkbatches für asicc. exe, mrc. exe und tbc, mit basm. exe, asm. exe, freelink. exe und moonrocks mrlink in einem Pfadverzeichnis. In seiner Standardkonfiguration verwendet Moonrock A86, um die Ausgabe zusammenzusetzen, um asm unzip mrcasm. cfg von config. zip zu verwenden und umbenennen in mrc. cfg und vergewissere dich, dass alles auf dem Pfad aufgeführt ist. Natürlich ist es nicht nötig, diese zu installieren und zu lernen, Basm, Basm, Asm und Freelink zu verwenden. Conv2bat. bat kombiniert die Kompilierung und Konvertierung in Batch in einem Schritt verwendbar aus Windows-Rechtsklick-Menü-System. Asicc wird aufgerufen, um asi-Dateien, basm / asm / freelink für bas-Dateien, Moonrocks mrc für Moo-Dateien und Tokiwas tbc für Token-Dateien zu kompilieren. Notizblock oder jeder andere Texteditor kann verwendet werden, um die Quelle zu erstellen, halten Verknüpfungen zu den Dokumenten praktisch. Nach dem Kompilieren der Quelle kodiert Conv2bat es in Batch-Form, wobei eine Datei und eine. bat-Datei mit dem gleichen Basisnamen wie die ursprüngliche Quelldatei. Eine Batch-kommentierte Version der ursprünglichen Quelle ist in der Ausgabe-Batch enthalten, um zu erinnern, was die binäre tut. Wenn die angegebene Dateierweiterung keine unterstützte Quelldatei ist, codiert Conv2Bat sie direkt, um Batch zu bearbeiten, den Ausgabe-Batch-Code nach Bedarf, um die Binärdatei zu verwenden. Das klingt einfach genug. Für eine echte Sprache Probleme. Wenn Batch als Drag & Drop-Ziel verwendet wird, wird das aktuelle Verzeichnis nicht auf die Datei gesetzt, sondern aus dem übergebenen Dateinamen ermittelt. Grundsätzlich muss die Erweiterung von dem Rest des Dateinamens getrennt werden, aber etwas anderes als das Hinzufügen von Zeichenketten zusammen zu tun, ist außerhalb des Geltungsbereichs der Charge. Nach der Codierung mit EncBin muss quoterich: quot undggtgtfilequot (ein gt in der ersten Zeile, Datei ist variabel) jeder Zeile hinzugefügt werden, um runnable Batch-Code zu erstellen. Um Quellcode aufzunehmen, muss quot :: quot vor jeder Zeile eingefügt werden.


No comments:

Post a Comment