Take Command bietet eine umfangreiche Befehlssprache in seinem Befehlsprozessor (TCC.EXE), die hochgradig aufwärtskompatibel mit dem standardmäßigen Windows-Befehlsprozessor CMD.EXE ist (und diesen ersetzt). Es eignet sich sowohl für die Erstellung einfacher als auch anspruchsvoller Batch-Programme. Die Sprache kann auch an der Eingabeaufforderung verwendet werden, um eine sehr leistungsstarke Echtzeitmanipulation Ihres Computers zu ermöglichen.
Übersicht
TCC verfügt über ein riesiges Spektrum an Fähigkeiten. Diese Funktionen sind in drei Kategorien unterteilt:
• Interne Befehle - Dies sind die primären Sprachkonstrukte. Zu den gängigen Befehlen gehören DIR, COPY, MOVE usw. TCC bietet Ihnen sofortigen Zugriff auf mehr als 235 interne Befehle. (CMD.EXE von Microsoft verfügt über weniger als 40 interne Befehle.)
Interne vs. externe Befehle
Wenn wir von einem internen Befehl sprechen, meinen wir, dass der Befehl in den integriert ist Take Command Programm. Bei CMD sind einige Befehle, wie z. B. XCOPY, tatsächlich separate Programme. In PowerShell handelt es sich bei den Befehlen im Allgemeinen um externe Programme. PowerShell erfordert die Installation eines separaten .NET Frameworks auf dem Computer, damit die Befehle funktionieren.
• Interne Variable - Interne Variablen sind spezielle integrierte Variablen TCC um Informationen über Ihr System bereitzustellen. Sie werden nicht in der Umgebung gespeichert, können aber wie Umgebungsvariablen in interaktiven Befehlen, Aliasnamen und Batchdateien aufgerufen werden. Take Command stellt mehr als 270 interne Variablen bereit, die Ihnen viel über Ihren Computer und seine Funktionsweise verraten können. Dazu gehören installierte Hardware, Hardwarestatus, Betriebssystem- und Softwarestatus usw.
• Variable Funktionen - Variablenfunktionen sind internen Variablen sehr ähnlich, sie benötigen jedoch einen oder mehrere Parameter (bei denen es sich um Umgebungsvariablen oder sogar andere Variablenfunktionen handeln kann). Variablenfunktionen sind an der Eingabeaufforderung sowie in Alias- und Batchdateien nützlich, um verfügbare Systemressourcen zu überprüfen, Zeichenfolgen und Zahlen zu bearbeiten und mit Dateien und Dateinamen zu arbeiten. Es sind mehr als 360 variable Funktionen integriert TCC.
Wir werden nicht über alle Funktionen des sprechen TCC Sprache in diesem Tutorial. (Das Handbuch ist 1,300 Seiten lang!) Wir gehen davon aus, dass Sie die Grundlagen von CMD kennen und weisen Sie auf einige Dinge hin, die Sie benötigen TCC ist mit weniger Aufwand besser als CMD.
Interne Befehle
Es gibt mehrere Aspekte von TCCs interner Befehlssatz, der auf jeden Fall einen Blick wert ist:
• Switches
• Aliases
• HTTP und FTP
• Fluss von Steuerbefehlen
• KEYSTACK-Befehl
• Ereignisüberwachungsbefehle (Trigger) – Wir haben daraus ein separates Tutorial gemacht
Jedes davon wird im Folgenden behandelt:
1. Switches
Schalter modifizieren Befehle, indem sie ihnen spezielle Anweisungen geben. TCC verfügt über eine Obermenge der CMD-Schalter und ist im Allgemeinen kompatibel. Wir sagen allgemein, da CMD leider nicht von Version zu Version konsistent war.
In CMD verfügt der COPY-Befehl beispielsweise über 7 Schalter (XCOPY hat mehr). Der TCC Der COPY-Befehl verfügt über 34 Schalter. Beispiele für einige der Schalter, die der Befehl CMD COPY nicht hat, sind:
• /N Führt den Kopierbefehl aus und zeigt Ihnen die Ausgabe an, führt den Befehl jedoch nicht tatsächlich aus
• /O Kopieren Sie die Quelldatei nur, wenn das Ziel nicht vorhanden ist
• /S Kopieren Sie den Unterverzeichnisbaum, beginnend mit den Dateien im Quellverzeichnis und jedem Unterverzeichnis
• /H Kopieren Sie alle übereinstimmenden Dateien, einschließlich derjenigen mit einem versteckten oder Systemattributsatz
• /W Löschen Sie Dateien im Zielverzeichnis, die im Quellverzeichnis nicht vorhanden sind
Mit diesen Schaltern können Sie die Sprache auf eine Weise individuell anpassen, die mit CMD nicht möglich ist. Sie führen sehr leistungsstarke Operationen mit nur zwei oder drei Tastenanschlägen aus.
2. Aliases
Wir haben Ihnen also all diese leistungsstarken Schalter gegeben, aber vielleicht möchten Sie sie nicht immer eingeben müssen.
Vielleicht haben Sie einige gemeinsame Vorgehensweisen und möchten TCC Dinge so anzupassen, wie man sie machen möchte.
Wir haben eine Lösung ... Aliase. Ein Großteil der Macht von TCC wird in Aliasnamen zusammengefasst, die Ihnen die Möglichkeit geben, Ihre eigenen Befehle zu erstellen. Ein Alias ist ein Name, den Sie für einen Befehl oder eine Befehlsgruppe auswählen.
Einfache Aliase ersetzen einen neuen Namen für einen vorhandenen Befehl. Komplexere Aliase können die Standardeinstellungen interner oder externer Befehle neu definieren, als sehr schnelle Batchdateien im Speicher fungieren und Befehle basierend auf den Ergebnissen anderer Befehle ausführen. TCC unterstützt auch Verzeichnisaliase, eine Kurzform zur Angabe von Pfadnamen.
Aliase können auch benutzerdefinierte Versionen von Befehlen erstellen. Beispielsweise kann der DIR-Befehl ein Verzeichnis auf verschiedene Arten sortieren. Sie können einen Alias namens DE erstellen, der „Verzeichnis nach Dateinamen sortieren“ bedeutet Erweiterung und pausieren Sie nach jeder Seite, während sie angezeigt wird“ wie folgt:
Alias de=dir /oe /p
Sie müssen sich also nicht alle diese Schalter merken. Sie können Versionen der Sprache einrichten, die Ihren Anforderungen entsprechen. Sie können beispielsweise Aliase erstellen, die mit gängigen Linux-Shell-Befehlen übereinstimmen und auf die gleiche Weise funktionieren, wenn das für Sie bequemer ist.
TCC Aliasing unterscheidet sich in einigen wesentlichen Punkten von CMD (und seinem externen DOSKEY).
• Sie können Aliase in Batchdateien verwenden. DOSKEY-Makros können in Ihren Batchdateien nicht verwendet werden.
• TCC Aliase können eine Variablenerweiterung enthalten, die in DOSKEY nicht verfügbar ist. In diesem Beispiel wird ein einfacher Befehlszeilenrechner erstellt.
alias calc=`echo Die Antwort ist: %@eval[%$]
Sobald Sie das Beispiel eingegeben haben, können Sie beispielsweise CALC 4*19 eingeben und schon sehen Sie die Antwort. Die variable Funktion %@eval[%$] wird vom Parser ausgewertet. Der Text „4*19“ ersetzt den Platzhalter „$“ und die Variablenfunktion @eval welches mathematische Funktionen ausführt, berechnet das Ergebnis.
• Sie können einem Tastendruck einen häufig verwendeten Alias zuweisen. Zum Beispiel:
alias @Shift-F5=*dir /2/S
Nachdem Sie dieses Beispiel eingegeben haben, sehen Sie ein zweispaltiges Verzeichnis mit Paging, wann immer Sie Umschalt-F2 und anschließend die Eingabetaste drücken.
• TCC erlaubt auch Verzeichnis-Aliase. Verzeichnis-Aliase sind eine Kurzform zur Angabe von Pfadnamen. Wenn Sie beispielsweise einen Alias definieren:
Alias pf:=c:\Programme
Sie können dann auf die Dateien in c:\Programme\jpsoft verweisen, indem Sie pf:\jpsoft eingeben.
3. Fluss von Steuerbefehlen
Einer der schwächsten Bereiche von CMD ist der Kontrollfluss. Dies sind Konstrukte wie IF..THEN..ELSE oder DO LOOPS, mit denen Sie anspruchsvolle Batch-Programme entwickeln können. Wenn Sie Batch-Prozesse im Rechenzentrum erstellen, hindern Sie die Einschränkungen in CMD daran, anspruchsvollere Arbeiten durchzuführen.
TCC bietet einen sehr umfangreichen Satz von Konstrukten, mit denen Sie die Fähigkeiten der typischen Linux-Shells duplizieren (oder übertreffen!) können.
Die folgenden Beispiele zeigen einige der Arten von DO-Schleifen, die Sie erstellen können:
Machen Sie Schleifen
Zählen Sie
Tun Sie es für immer
DO varname = start TO end [BY step]
DO WHILE-Bedingung
DO-BIS-Bedingung
TUN BIS DATETIME Datum Uhrzeit
DO FOR n [SECONDS | MINUTEN | STD]
DO varname IN [range...] [/I:"text" /S[n] /A:[-|+]hsad] Dateisatz
DO varname IN [/T"delimiters"] /L stringset
DO varname IN /C stringset
Geben Sie den Variablennamen im /P-Befehl ein
DO varname IN @Datei
TCC Bietet außerdem ein sehr leistungsfähiges IF..THEN..ELSE-Konstrukt über den IFF-Befehl.
If...Then...Else-Konstrukte
IFF-Bedingung1 DANN
Befehlssatz1
[ELSEIFF Bedingung2 DANN Befehlssatz2]
...
[ANDERS
Befehlssatz3]
ENDIFF
Der Alias in diesem IFF-Beispiel prüft, ob der Parameter ein Unterverzeichnis ist. Wenn ja, löscht der Alias die Dateien des Unterverzeichnisses und entfernt es (geben Sie dies in eine Zeile ein):
alias prune `iff isdir %1 then & del /s /x /z %1 & else & echo %1 ist kein Verzeichnis! & endiff`
Dieses Beispiel zeigt, wie ein SWITCH-Konstrukt funktioniert. Das Batchdateifragment unten zeigt eine Meldung an, wenn der Benutzer A drückt, eine andere, wenn der Benutzer B oder C drückt, und eine dritte, wenn der Benutzer eine andere Taste drückt:
Konstrukte wechseln
inkey Geben Sie einen Tastendruck ein: %%key
Schalter %key
Fall A
echo Es ist eine Eins
Fall B .oder. C
echo Es ist entweder B oder C
Standard
echo Es ist nichts von A, B oder C
4.KEYSTACK
KEYSTACK nimmt eine Reihe von Tastenanschlägen auf und leitet sie an ein Programm oder einen Befehl weiter, als ob sie über die Tastatur eingegeben würden. (Es gibt kein Äquivalent in CMD.) KEYSTACK wird am häufigsten für Programme verwendet, die aus Batchdateien gestartet werden. Um beispielsweise Word zu starten und das zuletzt bearbeitete Dokument zu öffnen, können Sie den folgenden Befehl verwenden:
Startwort und Keystack /w54 alt-f „1“
Dies führt zu Folgendem:
• Startet Word,
• Der /w-Schalter verursacht eine Verzögerung von etwa drei Sekunden (54 Uhr tickt jeweils etwa 1/18 Sekunde), bis Word gestartet wird.
• Platziert die Tastenkombinationen für Alt-F (Pulldown-Menü Datei) und 1 (zuletzt verwendete Datei öffnen) im Puffer.
Word empfängt diese Tastenanschläge und führt die entsprechenden Aktionen aus. Beachten Sie, dass die beiden Befehle START und KEYSTACK in einer einzigen Befehlszeile ausgegeben werden. Dadurch wird sichergestellt, dass die Tastenanschläge an das Word-Fenster und nicht zurück gesendet werden Take Command.
5. FTP und HTTP
TCCMit den FTP- und HTTP-Befehlen von können Sie http- und FTP-Sites so behandeln, als wären sie lokale Festplatten. Dies ist ein großer Vorteil gegenüber CMD. Im Arbeiten in der Internetweltzeigen wir Ihnen, wie Sie mit diesen Befehlen praktische Fernüberwachungsanwendungen erstellen.
Im einfachsten Fall können Sie so tun, als ob eine FTP- oder HTTP-Site eine lokale Festplatte wäre. Um beispielsweise ein Verzeichnis der FTP-Site von JP Software abzurufen, können Sie diesen Befehl verwenden:
Das folgende Beispiel zeigt, wie ein FTP-Benutzername und ein FTP-Passwort eingefügt werden:
Dir ftp://Benutzername:Passwort@ftp.abc.com/mydir/*
Sie können Internetseiten für DIR, COPY, MOVE, DEL und andere Befehle referenzieren. Diese Befehle funktionieren auch mit sicheren Versionen von FTP und HTTP.
6. Ereignisüberwachungsbefehle (Trigger)
Eine der leistungsstärksten Funktionen in TCC sind die Befehle zur Ereignisüberwachung. Sie ermöglichen es Ihnen, eine Vielzahl von Aktivitäten auf Ihrem Computer zu beobachten und Prozesse in die Tat umzusetzen, um Probleme zu beheben oder darüber zu berichten.
Dies ist ausführlich in beschrieben Verwenden von Triggern in Take Command. Es lohnt sich, es zu lesen.
Interne Variablen
Interne Variablen sind spezielle integrierte Variablen TCC um Informationen über Ihr System bereitzustellen. Sie werden nicht in der Umgebung gespeichert, können aber wie Umgebungsvariablen in interaktiven Befehlen, Aliasnamen und Batchdateien aufgerufen werden.
Es gibt mehr als 280 davon (CMD hat weniger als 10). Zu den wichtigsten Variablentypen gehören:
• Hardwarestatus
• Betriebssystem- und Softwarestatus
• Daten und Zeiten
• Laufwerke und Verzeichnisse
• Fehlercodes
• Bildschirm, Farbe und Cursor
• Take Command Status
• Kompatibilität
Hier ist ein einfaches Beispiel für die Verwendung einer gemeinsamen Variablen namens _DOW (Day Of Week):
Wenn „%_DOW“ == „Mon“, rufen Sie c:\cleanup\weekly.bat auf
Dieses Beispiel ruft eine weitere Batchdatei auf, wenn heute Montag ist.
Bevor wir fortfahren...
Eine kurze Anmerkung:
Eines der großen Geheimnisse der Befehlszeile ist das %-Zeichen. Was tut es? Wenn Sie ein %-Zeichen vor einer Variablen oder Funktion sehen, bedeutet dies, dass der Parser die Funktion auswerten und die Variable oder Funktion durch ihren Textwert ersetzen sollte. Im letzten Beispiel wird also %_DOW durch das Ergebnis ersetzt, das in diesem Fall MON, TUE oder was auch immer ist.
Wie wäre es mit etwas mehr Echtzeit, das Sie im Hintergrund ausführen können:
Tun Sie es für immer
if „%_BATTERYPERCENT“ LT 25“ MSGBOX Batterie ist schwach
ENDDO
Dieser Befehl führt eine fortlaufende Überprüfung des Batteriestatus durch und zeigt ein Meldungsfeld an, wenn die Batterieladung zur Neige geht. MSGBOX ist eigentlich ein sehr mächtiger Befehl TCC. Schau es dir in der Hilfedatei an.
Hier ist ein Beispiel, das vor dem Ausführen einer Anwendung prüft, ob genügend Ressourcen frei sind.
wenn %_GDIFREE dann 40 ist
echo Nicht genügend GDI-Ressourcen!
hör auf, sonst
d:\meinverzeichnis\meineapp
endiff
Sehen Sie sich die Liste der internen Variablen nach Kategorie in der Hilfedatei an.
Variable Funktionen
Variable Funktionen sind eine der leistungsstärksten Funktionen von TCC. Variablenfunktionen sind internen Variablen sehr ähnlich, sie benötigen jedoch einen oder mehrere Parameter (bei denen es sich um Umgebungsvariablen oder sogar andere Variablenfunktionen handeln kann).
Variablenfunktionen sind an der Eingabeaufforderung sowie in Alias- und Batchdateien nützlich, um verfügbare Systemressourcen zu überprüfen, Zeichenfolgen und Zahlen zu bearbeiten und mit Dateien und Dateinamen zu arbeiten.
Es gibt mehr als 360 Variablenfunktionen, die in 13 Kategorien gruppiert sind. Sie ermöglichen es Ihnen, Systeminformationen auf sehr leistungsstarke Weise zu sammeln und zu bearbeiten. (CMD hat keine variablen Funktionen.) Denken Sie daran ... sie sind alle eingebaut.
•Binäre Puffer
•Daten und Zeiten
•Laufwerke und Geräte
•Dateiinhalt
•Dateinamen
•Dateieigenschaften
•Eingabedialogfelder
•Netzwerk Performance
•Netzwerkeigenschaften
•Zahlen und Rechnen
•Zeichenfolgen und Zeichen
•Systemstatus
•Dienstprogramm
Mit Funktionen, TCC kann Textdateien sowie einige Spezialdateien wie die Windows-Registrierung oder .ini-Dateien lesen und schreiben. Im folgenden Beispiel lesen wir eine CSV-Datei namens „names.csv“ (eine Textdatei mit durch Kommas getrennten Feldern). Die Datei sieht wie folgt aus:
Joe,100,joe@company.com
Jane,200,jane@company.com
Peter,400,peter@company.com
In unserem Beispiel wird diese Datei Zeile für Zeile gelesen und in jeder Zeile die E-Mail-Adresse ausgewählt. Anschließend werden sie an die Konsole zurückgegeben.
kompensieren Dateiname=%@expand[Namen*.csv]
Nehmen Sie auf @%Dateiname
kompensieren email=%@field[",",3,%record] echo %email
beenden
Dieser Code führt Folgendes aus:
• In der ersten Zeile des Beispiels wird mithilfe von eine Variable mit der vollständigen Datei und dem Pfadnamen der CSV-Datei erstellt @expandieren Funktion.
• Die zweite Zeile verwendet einen Sonderfall des DO-Befehls, um:
• Öffnen Sie den Dateinamen, den wir in der ersten Zeile festgelegt haben, mit einem @Dateinamen Funktion
• Erstellen Sie einen Zeilenzähler, der auf eins gesetzt wird
• Richten Sie eine neue Variable mit dem Namen „record“ ein.
• Lesen Sie die erste Textzeile bis zum CR und geben Sie sie an „record“ zurück.
• Der @Feld Die Funktion wählt das dritte Feld in der Zeile (das die E-Mail-Adresse enthält) mit einem „“, als Feldtrennzeichen aus und platziert es in einer Variablen namens „email“. Das Trennzeichen könnte alles sein, was Sie wollen.
• Der ECHO-Befehl gibt die E-Mail-Adresse an die Konsole aus
• ENDDO führt die Schleife zur do-Anweisung zurück, die den Zeilenzähler auf die nächste Zeile erhöht. Wenn es das Ende der Datei ist, wird die Schleife beendet.
Dieses spezielle Beispiel scheint etwas begrenzt zu sein, aber wir verwenden eine Variante davon, um unsere Bestellungen zu verarbeiten, Registrierungsschlüssel zu erstellen und sie mit einer bemerkenswert kleinen Menge Code per E-Mail an unsere Benutzer zu senden.