Skip to main content

Batch Echo Binary Options

WinSCP Freier SFTP-, SCP - und FTP-Client für Windows Wenn keine Parameter angegeben sind, werden alle Skriptoptionen und deren Werte aufgelistet. 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 Eingabeaufforderung 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 das Zurücksetzen der gleichen Option überschreibt einen vorherigen Wert, es nicht append. Encoding Binärdaten in Batch-Code Ich schrieb dies zu Beginn des Jahres 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 zu 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, akkumulieren 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 Decoders 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 zurückgeben. 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 der oben. 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: encbin lt binary gt, dann bearbeiten Sie 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. In der Regel werden Batches (c: pathprog. exe 1 2 etc) in einem Pfadverzeichnis 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 Kompilieren und Konvertieren in Batch in einem Schritt nutzbar 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. Ein Batch, das alle, die nur Standardbefehle verwenden (wenn Sie Debuggen zählen) möglich ist, ein QBasic-Skript funktionieren würde, aber das ehemalige würde ziemlich viel Hack-Style-Programmierung und QBasic ist nicht auf jedem System installiert (und blinkt) . Binäre Batch-Blöcke in Basm geschrieben leicht gelöst alle diese Probleme. NT-Kompatibilität sollte einigermaßen gut sein, aber NTs find-Befehl gibt nicht ein errorlevel zurück, der Teil, der dokumentiert, ob die com-Datei mit PkLite komprimiert wurde, wird nicht ordnungsgemäß funktionieren, aber Codeausgabe ist nicht betroffen. Getting weg von Inkompatibilitäten wie dieses ist ein wichtiger Grund für die Verwendung von binären Batch (ich hoffe nur, dass es nicht neue Inkompatibilitäten), aber da diese ist klein, so dass ich nicht glaube, Ill reparieren, wenn ich ein NT-ähnliches System zu bekommen. Es gibt möglicherweise andere Inkompatibilitäten, die ich nicht weiß, alle, die ich habe, ist 95 und der Win95Cmd Cmd Emulator, zum mit zu prüfen. Tasm-Baugruppenquelle für den DecBin-Decoder. (Vor CM3-Codierung) Tasm-Quelle für den EncBin-Encoder. Verwenden von Conv2Bat und Wiederverwendung von Binary-Batch-Code Kopieren Sie Binärdateien, die nicht auf Bibliotheken zugreifen (wie basm, asm und die Linker), in einen Pfadverzeichnis und erstellen Sie die Verknüpfung von Batchdateien in einem Pfadverzeichnis für die größeren Compiler (Asicc, mrc, tbc). Für Windows, Verknüpfungen zu den doc-Dateien der Compiler youre verwenden oder gedruckte Kopien, youll benötigen, um sie häufig zu verweisen, wie Sie Code schreiben. Wenn Sie mit der rechten Maustaste klicken und quotConvert to Batchquot auswählen (oder wie auch immer genannt), verwenden Sie den Windows ViewOptions-Dateitypen-Dialog und fügen Sie nach Bedarf asi, bas, moo und tok-Dateien hinzu. Sie können die Quelldatei auch über die Conv2Bat. bat-Datei oder eine Verknüpfung auf sie ziehen. Conv2Bat sollte in Dos 6 funktionieren, es enthält keinen Windows-spezifischen Code aber benötigt den Dos 6 oder später FIND Befehl, um richtig zu dokumentieren, ob PkLite verwendet wurde oder nicht. Unter NT werden die Kommentare im Ausgabe-Batch wahrscheinlich nicht korrekt sein, aber die Codeausgabe sollte die gleiche sein (wenn es keine anderen Inkompatibilitäten gibt, die nur mit Win95Cmd getestet wurden). Conv2Bat gibt Batch-Code aus, der den Decoder in quotdquot schreibt, die temp-Datei auf quott. tmpquot und das eigentliche decodierte Programm auf seinen ursprünglichen Dateinamen. Bearbeiten Sie den Ausgabecode nach Bedarf für Ihre Anforderungen. Ich ändere häufig die Akte Ziele zu den Variablen (wie gtgttf), um das Schreiben in das temp-Verzeichnis zu erlauben, ohne einen langen Dateinamen auf jeder Zeile zu benötigen. Nachdem nützliche Hilfsprogramme erstellt wurden, können Sie sie nach Bedarf in die Batchdateien kopieren und einfügen. Ich habe gerade einen neuen kompakten HTML-Browser namens quotOff By One und wollte in der Lage, eine HTML-Datei auf das Symbol zu laden, ziehen, aber der Browser will eine Datei sehen: /// c: / egal Typ url für lokale Dateien . Grundsätzlich brauchte ich einen Batch, der einen zitierten langen Dateinamen in eine URL konvertiert, die der Browser laden kann. Zuerst muss ich den langen Namen in einen kurzen Namen umwandeln (wirklich, um die Zitate zu befreien, aber tut nicht weh, um kurz zu sein, also eine einfache für Schleife tun), prepend quotfile: /// zum quoteless Namen und Änderung quotquot Auf quotiert. Heres, was ich komme in sehr wenig Zeit mit Code von Conv2Bat kopiert. Batch-Datei Größe erhöht wird, vielleicht zu viel für einige Geschmäcker, aber ich denke nicht, das ist ein großer Nachteil. Es dauert etwa 3 Sekunden zu starten, anstatt 1 Sekunde gerade ausgeführt das Programm, sondern eine einzelne Batch-Zeile beginnt der Browser dauert fast so lange (bin-Batch fügt nur einen Bruchteil einer Sekunde) und es spielt keine Rolle, egal in Erwägung 3 Sekunden ist etwa 4 mal schneller als das Öffnen von Netscape oder IE. Es stört mich nicht, dass zwei com-Dateien erstellt und gelöscht werden in meinem temp-Verzeichnis, es sieht gruselig und nimmt mehr Bytes, Im glücklich Ich kann eine Datei ziehen, um OffByOne und es dauerte nur ein paar Minuten, um eine Suche zu erledigen und ersetzen Helfer zerrissen As-is aus einem anderen Bin-Batch. Ich könnte es kleiner durch das Schreiben von benutzerdefinierten Code, der direkt ändert quotquot auf quot / quot, aber das hätte länger dauern. Seine schnellere zu kopieren / einfügen bestehenden Code als neuen Code schreiben, wenn der vorhandene Code den Job macht, die Anzahl der Zeilen nicht, wenn es nicht so groß es behindert die Dinge auf andere Weise. Wie, wenn Notizblock den Stapel nicht mehr belastet. In der heutigen Welt der Multi-Megabyte-Programme eine aufgeblähte Charge ist unbedeutend. Ich konnte Platz sparen und machen die ersetzen Dienstprogramm eine persistente Datei und nicht codieren überhaupt, aber dann Id haben ein anderes Dienstprogramm auf meinem Weg zu halten, nicht wert, ein paar Kilobyte sparen. Echoed QBasic Skripte können fast alles, was bin-Batch tun können, aber theres ein Bildschirm-Flash, QBasic. exe muss verfügbar sein, und nicht in der Lage, quotltquot oder quotgtquot im Code zu verwenden kompliziert Vergleiche. Was auch immer funktioniert. Links zu binären Batch-Code und Compiler-Ressourcen (C) Copyright 2003 by Terry Newton infionline. net/Die ECHO-Befehl hat mehrere verschiedene Verwendungen. MS-DOS-Batchdateien verwenden zwei Echomodi. Der Standard-Echo-Modus ist ECHO ON. Wenn ECHO auf ON gesetzt ist. Wird jeder Befehl in der Batch-Datei auf dem Bildschirm angezeigt, bevor er ausgeführt wird. Manchmal sind diese Informationen nicht erforderlich, und kann sogar geradezu ärgerlich für größere Batch-Dateien. Der Befehl ECHO OFF setzt den Batch-Echomodus auf OFF. In diesem Modus werden die Befehle vor der Ausführung nicht auf den Bildschirm gedruckt. Neben den Echomodi wird mit dem ECHO-Befehl eine Nachricht an den Benutzer ausgedruckt. Meldungen werden dem Benutzer durch Voranstellen einer Textzeile mit ECHO angezeigt. ECHO-MODUS EIN. ECHO EIN ECHO-MODUS AUS. ECHO OFF DISPLAY A NACHRICHT. ECHO-Meldung Der Befehl ECHO OFF wird fast immer am Anfang einer Batchdatei abgelegt, um das nachfolgende Echo auszuschalten. ECHO ist auch die einzige Möglichkeit, eine Batch-Datei Informationen an einen Benutzer zu kommunizieren. ECHO OFF ECHO Bitte legen Sie einen Datenträger in Laufwerk A: und drücken Sie eine beliebige Taste, wenn Sie bereit sind. Der IF-Befehl wird in Batchdateien verwendet, um zu testen, ob eine Bedingung erfüllt ist oder nicht. Dadurch kann die Batchdatei eine bestimmte Aktion nur ausführen, wenn eine bestimmte Bedingung erfüllt ist. Es gibt verschiedene Variationen des IF-Befehls: IF EXIST. WENN ERRORLEVEL. Und IF x y (ja es verwendet zwei gleiche Zeichen) IF EXIST Dateiname oder dirname. Um die Existenz einer Datei oder eines Verzeichnisses in MS DOS zu testen. Dieser Test gibt true zurück, wenn die Datei existiert. WENN ERRORLEVEL. Nachdem ein Programm in MS DOS ausgeführt wurde, gibt es einen Wert an das Betriebssystem zurück, das seinen Erfolg oder Fehler angibt. Dieser Wert wird in der Variablen ERRORLEVEL gespeichert. Durch Testen dieser Variable kann eine Batchdatei das Ergebnis des gerade beendeten Programms ableiten. IF x y. Diese Version der IF-Anweisung testet zwei String-Werte. Wenn string x gleich string ist, wird dieser Test als true ausgewertet, andernfalls false. Alle obigen IF-Anweisungen können auch mit dem NOT-Befehl negiert werden. Zum Beispiel -: IF NOT EXIST Dateiname. Überprüft, ob die Datei nicht existiert. Dieser Test wird true zurückgeben, wenn die Datei nicht vorhanden ist. Die IF-Anweisung ist einer der nützlichsten Batch-Datei-Befehle, und als solche ist wahrscheinlich die häufigste. Mit dem Befehl IF EXIST wird überprüft, ob eine Datei existiert, bevor sie kopiert / verschoben / geöffnet / etc wird. Das IF ERRORLEVEL erlaubt eine Batchdatei, den Rückgabewert eines anderen Programms zu überprüfen. Das IF STRING1 STRING2 wird häufig verwendet, um Befehlszeilenparameter zu überprüfen. IF NOT EXIST 1 MKDIR 1 WENN ERRORLEVEL 2 GOTO END WENN 1 GOTO ERROR Der SHIFT-Befehl ist möglicherweise zuerst der verwirrendste Batchdatei-Befehl. Es muss nicht sein. Der Befehl SHIFT erhöht die Anzahl der Befehlszeilenparameter, die von einer Batchdatei zugänglich sind. Jedes Mal, wenn SHIFT aufgerufen wird, wird der Wert im 1. Parameter verworfen und durch den Wert des zweiten Parameters ersetzt. Der Wert in dem zweiten Parameter wird durch den Wert in dem dritten Parameter usw. ersetzt, bis der neunte Parameter durch den vorher nicht verfügbaren 10. Parameter ersetzt wird. Der Befehl SHIFT bietet erhebliche Leistung für Batch-Dateien. Es ermöglicht eine Batch-Datei auf eine unbekannte Anzahl von Parametern zu betreiben. Der Befehl SHIFT wird häufig in Situationen verwendet, in denen eine Operation an mehreren Dateien oder Verzeichnissen durchgeführt werden muss. Im folgenden Beispiel wird der Inhalt der Dateien angezeigt, die nach dem Batch-Dateinamen jeweils eine Seite eingegeben werden. Der Befehl FOR war eine unschätzbare Ergänzung der DOS Batch File Command Suite. FOR wiederholt einen Befehl für eine Anzahl von Dateien, Verzeichnissen oder Textstrings. FOR Variable IN list DO Befehlsparameter Schalter Where -: Variable wird für jedes Element in der Liste ersetzt und an Befehl übergeben. Variable hat ein spezielles Format in Batch-Dateien. Liste ist eine Liste von Dateinamen (Wildcards erlaubt), Verzeichnisnamen oder Text-Strings, die von Befehl zu einer Zeit verarbeitet werden sollen. Befehl ist ein interner oder externer DOS-Befehl, der für jedes Element der Liste ausgeführt wird. Der Befehl FOR führt für jedes Element einer Liste denselben Befehl aus. Vor der Einführung musste die gleiche Wirkung mit GOTO s und IF s, die unordentlich und manchmal schwer zu folgen waren erreicht werden. Verwenden Sie eine FOR, um alle erforderlichen Looping in Ihre Batch-Dateien zu tun. Im Folgenden wird eine Implementierung des gleichen Beispiels dargestellt, das in dem SHIFT-Beispiel dargestellt wird, wie viele Dateien auf dem Bildschirm mit MORE angezeigt werden. FOR f IN (.) DO TYPE f MEHR Der CHOICE-Befehl ist vielleicht der beste Zusatz zu MS DOS Batch File Befehlen. CHOICE ermöglicht es, verschiedene Benutzerreaktionen zu akzeptieren. Bisher wurden die Benutzer mit groben entweder / oder Entscheidungen in Batch-Dateien. Mit dem CHOICE-Befehl kann eine Batchdatei eine Benutzerwahl aus einer Vielzahl von Optionen erkennen. CHOICE / C: Auswahl / N / S / T: Auswahl, Timeout TEXT Wo -: / C: Auswahl. Legt die Auswahl fest, aus der der Benutzer wählen kann. Die Auswahl kann nur Einzelzeichen sein. / N. Wählen Sie keine Optionen und am Ende der TEXT-Eingabeaufforderung. / S. Behandeln Sie die Auswahl als Groß - / Kleinschreibung, dh a ist eine andere Wahl als A. Standardmäßig ist case nicht sensitiv - a entspricht A. / T: select, timeout. Standardwert nach Zeitüberschreitung. TEXT Der Text, der als Eingabeaufforderung angezeigt werden soll. Der CHOICE-Befehl hat seine offensichtliche Verwendung in Batch-Dateien. Es ist jetzt möglich, leicht eine Antwort der Benutzer zu erhalten, so dass Batch-Dateien viel interaktiver und daher nützlicher. Das folgende Batch-Datei-Snippet zeigt ein einfaches Menü an (ohne ein Fragezeichen am Ende der Eingabeaufforderung) und fordert die Benutzer auf, standardmäßig auf Option 2 nach 5 Sekunden: ECHO 1. MS-DOS Editor. ECHO 2. MS-Windows. (Standard) ECHO 3. Defragmentieren Sie die Festplatte. ECHO 4. Beenden. CHOICE / C: 1234 / N / T: 2,5 Bitte wählen Sie einen Menüpunkt. WENN ERRORLEVEL 4 GOTO QUITMENU WENN ERRORLEVEL 3 GOTO DEFRAGHD WENN ERRORLEVEL 2 GOTO RUNWIN WENN ERRORLEVEL 1 GOTO RUNEDIT: RUNEDIT CALL EDIT: RUNWIN CALL WIN: DEFRAGHD DEFRAG c:: QUITMENU ECHO Sicher, die Maschine jetzt abzuschalten.


Comments