Ordner abfrage

Hier dürfen auch unregistrierte Besucher posten.
Antworten
Irocke

Ordner abfrage

Beitrag von Irocke »

hallo erstmal

und zwar wollte ich mal fragen ob es möglich ist eine abfrage mit "if" für einen ordner zumachen
und wenn ja wie??

gruß irocke
DOSferatu
DOS-Übermensch
Beiträge: 1220
Registriert: Di 25. Sep 2007, 12:05
Kontaktdaten:

Re: Ordner abfrage

Beitrag von DOSferatu »

Falls Du im von BAT-Dateien sprichst:

if exist "NAME" befehl

befehl ist eben alles, was ein DOS-Befehl oder BAT-Befehk sein kann. auch zB sowas wie goto

"NAME" ist eben der Name des Verzeichnisses ("Ordner" - immer diese Windows-Semantik... ärks..)

es geht auch

if not exist "NAME" befehl


Beispiel:

if not exist "ORDNER" goto keinordner
cd ORDNER
goto ende
:keinordner
echo Der Ordner ORDNER wurde nicht gefunden.
:ende


Man kann so einer BAT auch Kommandozeilenparameter übergeben. Diese werden dann mit %1 bis %9 dargestellt.

if not exist "%1" goto keinordner
cd %1
goto ende
:keinordner
echo Der Ordner %1 wurde nicht gefunden.
:ende

Dieser BAT-exist Befehl macht bei dem Testen, ob es ein Verzeichnis (also Ordner) oder eine Datei ist, keinen Unterschied. Das heißt: Wenn da kein Ordner dieses Names da ist, sondern stattdessen eine Datei, die so heißt, findet er die auch.
Benutzeravatar
BastetFurry
Solitärspieler
Beiträge: 15
Registriert: Do 30. Jul 2009, 01:39
Wohnort: Essen

Re: Ordner abfrage

Beitrag von BastetFurry »

Erm, MSDOS kann nicht nach Verzeichnissen IFen, das kann nur NVDOS7 mit if direxists.
Und auf blauen Dunst das Verzeichnis erstellen ist auch nicht so doll, MSDOS5 hat einen Bug in MKDIR welcher das Verzeichnis erstellt und dabei zur Not auch das alte einfach überschreibt. Alles "Very Evil"(TM)

Vielleicht rennt hier ja ein ASM Ass rum was mal eben ein kleines Programm bauen kann was man sich dann halt per DEBUG assembliert.
Könnte man dann sogar in die BAT-Datei einbauen, ala "if not exists "checkdir.com" goto make_checkdir".
DOSferatu
DOS-Übermensch
Beiträge: 1220
Registriert: Di 25. Sep 2007, 12:05
Kontaktdaten:

Re: Ordner abfrage

Beitrag von DOSferatu »

Hab mal schnell was zusammengetackert. Hat nichtmal 2 Minuten gedauert.

heißt FINDDIR.EXE und ist als finddir.zip
DA http://www.imperial-games.de/z/finddir.zip

zu finden.
Aufruf:

finddir VERZEICHNISNAME

wenn es gefunden wurde, ist danach ERRORLEVEL = 1, sonst ist ERRORLEVEL = 0.

Prima, um es in eine BAT-Datei einzubauen.
dose

Re: Ordner abfrage

Beitrag von dose »

Kennt niemand den alten trick mit nul?

IF EXIST [Verzeichnisname]\nul echo existiert

Also einfach an dne Verzeichnisnamen \nul anhängen haut ansich unter DOS hin.
z.B.: IF EXIST C:\DOS\nul echo existiert

dose
DOSferatu
DOS-Übermensch
Beiträge: 1220
Registriert: Di 25. Sep 2007, 12:05
Kontaktdaten:

Re: Ordner abfrage

Beitrag von DOSferatu »

Ich vermute mal, das funktioniert vor allem deshalb, weil Verzeichnisnamen meistens ohne "Erweiterung" benutzt werden und Dateinamen meistens mit. Intern werden aber Name+Erweiterung als 11 Zeichen gespeichert, ohne Zwischenraum und der Rest wird mit Nullen aufgefüllt. So daß Name immer 8 Zeichen und Erweiterung immer 3 Zeichen hat.

Aber ich persönlich benutze auch manchmal Files ohne Erweiterung (manchmal so Temp-File oder sowas) oder Verzeichnisnamen mit Erweiterung (wenn mir mal die 8 Zeichen nicht reichen oder so). Und ich weiß nicht, ob der \nul Trick da auch funktionieren würde.
Antworten