Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

erstellen einer Batch-Datei

al1111 / 4 Antworten / Baumansicht Nickles

Erstellen Sie eine Batch-Datei, mit der sie den Suchpfad erweitern können. Dabei soll überprüft werden, ob das oder die angegebenen Verzeichnisse existieren. Durch die Option /old soll die Erweiterung rückgängig gemacht werden können. Wie müßte diese Batch-Datei aussehen?

bei Antwort benachrichtigen
Abdreas42 (Anonym) al1111 „erstellen einer Batch-Datei“
Optionen

Hi!

Das ist eine schöne alte Aufgabe. :-)

Dürfen wir auch erfahren, aus welchem Prüfungskatalog/Aufgabensammlung die stammt?

Bis denn
Andreas

bei Antwort benachrichtigen
Andreas42 Abdreas42 (Anonym) „Hi! Das ist eine schöne alte Aufgabe. :- Dürfen wir auch erfahren, aus welchem...“
Optionen

Hi!

Nur als kleiner Anschub:

Ich würde mit IF EXIST %1/*.* testen, ob das Verzeichnis existiert.
Dann mit PATH den Pfad erweitern
Vorher den alten Pfad in einer Umgebungsvariablen (OLDPATH) sichern.

Bis denn
Andreas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen
Andrea Siegert al1111 „erstellen einer Batch-Datei“
Optionen

Ich habe es immer noch nicht raus, bin total am verzweifeln!!!

bei Antwort benachrichtigen
Andreas42 Andrea Siegert „Ich habe es immer noch nicht raus, bin total am verzweifeln!!!“
Optionen

Hi!

Kein Problem - dafür zahle ich ja an 1&1... ;-)

Leider hast du mir kein Beispiel deiner Bemühungen geschickt (bzw. hier eingefügt), deshalb fange ich "ganz unten" an.

Ok, ich gehe davon aus, dass es sich um eine Batch-datei für MSDOS handelt. ich werde das bei mir im DOS-Fenster von Win95 testen.

Los geht's:

Als erstes müssen wir uns um die Sache mit den Parametern kümmern. Hier ein einfaches Beispiel, dass auf das Parameter /OLD reagiert und feststellt, wenn bgar kein parameter angegeben ist.

------ Batch beginnt nach dieser Zeile ------------
@echo off
if "%1"=="" goto nix
if "%1"=="/old" goto zurueck
if "%1"=="/OLD" goto zurueck

rem Hier wird dann "earbeitet"
echo %1
echo der Pfad ist: %path%
goto ende

:zurueck
echo Parameter /OLD wurde angegeben!
goto ende

:nix
echo Es wurde nichts angegeben!

:ende
echo Das war's!
------ Batch endet vor dieser Zeile ---------------

Die Parameter werden mit %1, %2, %3 usw. angesprochen. Es gibt max. 9 dieser Variablen.
In der ersten Zeile teste ich, ob überhaupt etwas angegeben wurde. Die beiden anderen Zeilen überprüfen, ob /OLD angegeben wurde. Das ganze habe ich in Gross und in Kleinschrifft angegeben, da DOS in diesem Fall zwischen Gross- und Kleinbuchstaben unterscheidet. Perfekt ist das aber nicht: /olD /OlD usw. werden nicht erkannt.

Du kannst das ja einfach mal ausprobieren. :)

Pfad ändern:

Dass man den Pfad mit dem DOS-Befehl PATH ändern kann, weisst du hoffentlich inzwischen. (Falls nicht, dann kannst du dir eine Hilfe mit PAH /? anzeiegen lassen.)

Im obigen beispiel wird schon gezeigt, dass man sich den Pfad auch komplett ausgeben lassen kann (echo %path%). Das geht übrigends mit jeder Umgebungsvariable. Mann muss sie nur in Prozentzeichen setzen.

Was man tun muss, um den Pfad zu ändern, ist das erste Parameter an ihn anzufügen.
Erweitert wird der Pfad, indem man ein neues Verzeichnis getrennt durch ein Semikolon hinten anfügt.
Das ganze "simmuliere ich jetzt einfach durch echo.

---- Auszug der obigen batchdatei der geändert wird --------
rem Hier wird dann "gearbeitet"
echo %1
rem geänderte Zeile folgt:
echo %path%;%1
goto ende
---- Endet hier --------------------------------------------

Wenn man nun statt ECHO den Befel PATH verwendet, dann wird der vorhandene Pfad geändert.


Die Sache mit dem /OLD:

Wie nehmen wir eine Änderung zurück? Naja, wir merken uns einfach, wie der Pfad vorher aussah...
Also wird er in der Variable OLDPATH gespeichert, befor wir ihn ändern:

---- Auszug der obigen batchdatei der geändert wird --------
rem Hier wird dann "gearbeitet"
rem geänderte Zeilen folgen:
set oldpath=%path%
path %path%;%1
goto ende

:zurueck
echo Setze den Pfad zurück!
path %oldpath%
rem den alten Pfad löschen:
set oldpath=
rem Ende der geänderten Zeilen
goto ende
---- Endet hier --------------------------------------------

Tipp: wenn OLDPATH noch nicht gesetzt wurde, dann kann man das so feststellen:

if "%oldpath%"=="" goto nixold

So, dass muss für heute erstmal reichen. Viel Spass beim testen und rumprobieren... ;-)

Bis denn
Andreas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen