[Batch] Code erklärung

  • #1
F

flashgod

Guest
Hallo,

mir wurde hier super bei einem problem geholfen der code funktioniert auch prima aber ich kapier eine zeile nicht.

Könnte mir die hier jemand erklären..?
Habe auch keine vernünftige batch tutorials gefunden die so in die tiefe gegangen sind..

Danke schon mal für eure mithilfe!

dir a: | find Verzeichnis>a_chk.bat
echo set verz=%%0>verzeichnis.bat
call a_chk.bat
del verzeichnis.bat
del a_chk.bat
if %verz%/==/ echo Keine Diskette eingelegt...
if %verz%/== Verzeichnis/ echo Diskette ist eingelegt...


Es geht wohl meiner meinung nach um diese Zeilte:
echo set verz=%%0>verzeichnis.bat

Warum bekommt die verz Variable die richtige bestimmung? Sprich entweder bleibt sie leer oder bekommt den wert->Verzeichnis'.
Hat es was mit der call funktion zu tun?

Nochmals vielen dank würde mir sehr helfen!
 
  • #2
Die Batchdatei ist zugegebenermassen ein bischen tricky.

1. Das Dir-Kommando schreibt, je nachdem ob eine Diskette mit Label oder ohne Label eingelegt ist, unterschiedliche Befehlsausgaben. In beiden Fällen taucht aber der Satz Verzeichnis von A: auf.
Die Ausgabe wird in die Datei a_chk.bat geschrieben. Bei nicht eingelegter Diskette wird nichts geschrieben.

2. es wird die Datei verzeichnis.bat mit der Kommandozeile set verz=%%0 geschrieben.

3. Es wird a_chk.bat gestartet. Da steht als erstes Verzeichnis von...usw drin. Dos hält das für eine Batchdatei und versucht verzeichnis.bat zu starten. In verzeichnis.bat wird die Variable verz auf %0 gesetzt, das ist die erste übergebene Variable aus a_chk.bat. Beim Start von Batchdateien kann man Variablen übergeben. Im Falle von a_chk.bat sind das Verzeichnis von und A:\. Die wiederum kann man in verzeichnis.bat als %0, %1 und %2 abfragen.

Mich hat hier nur gewundert, das XP das anders handhabt als DOS. Ich hätte erwartet, dass %0 der Name der Batchdatei ist, also verzeichnis.bat und %1 das Wort Verzeichnis, aber seis drum, es funktioniert ja.
 
Thema:

[Batch] Code erklärung

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.959
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben