Dos - Batch Programmierung

forumjoe

Neuling
Thread Starter
Mitglied seit
02.10.2006
Beiträge
32
Folgendes Problemchen

Ich muss unter WinXP ein Batch file schreiben, was u.a. folgendes beinhaltet:

Mit Hilfe von "dir Laufwerk Dateiname" ermittle ich den Pfad der gesuchten Datei...
und mit "set Variablenname" lege ich mir ja ne Umgebungsvariable an...


Nun muss ich aber im Batch File mit dem Pfad - also dem Ergebnis - arbeiten
und weiss aber nicht, wie ich diesen sozusagen zuweisen kann,
da das mit den Pipes irgendwie nicht so recht klappen will.

Zudem wäre es nicht schlecht, wenn mir dann noch jemand sagt,
wie ich diesen Pfad in der Variable maipulieren kann.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Verschiebe dich mal ins Forum für Programmierung, da biste besser aufgehoben.
 
Hmpf, das ist schwer zu sagen, da ich selber den genauen Umfang des Batch Files nicht kenne,
je nach dem in wie fern sich dieses Problem lösen lässt...

Denn sollte das nicht machbar sein, warum auch immer,
muss ich nach einer anderen Alternative suchen,
daher taste ich mich erstmal stückchenweise ran.


Wie gesagt, ist erstmal die Hürde zu bewältigen,
dass wenn ich beispielsweise in dem File folgendes eingebe:
Code:
dir c:\win.ini /s
und in diesem Fall nach der Windows-ini-Datei zu suchen,
erhalte ich doch u.a. als Ergebnis den Pfad,
unter der die Datei zu finden ist
*einfach mal ausprobieren - geht auch in der Eingabeaufforderung*.

Und genau diesen Pfad will ich aus dem Ergebnis extrahieren,
*wie das dann auch immer gehen mag*
und in einer Variablen zwischenspeichern,
um damit dann weiterarbeiten zu können...
beispielsweise zu diesem Pfad zu wechseln,
um in diesem Verzeichnis weiterarbeiten zu können...

Eine weitere Frage würde sich daraus ergeben,
was passiert, wenn die Datei mehrfach auf der Festplatte vorhanden ist???
> Dann müsste man wieder den Benutzer fragen,
> welche Datei verwendet werden soll
> und den entsprechenden Pfad in der Variablen speichern

Ebenso wäre es von Vorteil den aktuellen Pfad,
in dem das Batch File liegt, auch in einer Variablen speichern zu können,
da ich öfters zwischen Pfaden hin und her wechseln muss.


Ich hoffe, das es erstmal etwas weiter hilft.

@Edit: Dank an den Mod
 
Zuletzt bearbeitet:
Hallo

So richtig weiß ich zwar noch nicht, was du machen willst, aber ich gebe mal ein paar Tips:

Ne normale Datei kannst du nicht mit dir suchen. Es gibt allerdings eine where.exe, die das macht. Beim W2003Server ist die dabei, ansonsten bekommt man die im Resource-Kit von Microsoft.

Die Ausgabe könntest du in eine vorbereitete Batch umleiten. Die Batch könnte so aussehen:

set MyFile=

Dann die Ausgabe von where dran hängen und die Batch aus der anderen Batch mit call aufrufen !

Falls das was du machen willst noch komplizierter wird, solltest du vielleicht VB-Script nehmen. Das ist ne komplette Programmiersprache, so daß du nicht an den Einschränkungen der Batch-Sprache scheiterst.

Jens
 
In der Newsgroup alt.msdos.batch kann Dir geholfen werden. Mit Windows Bordmitteln stösst man schnell an Grenzen. Es ist allerdings zu machen.
 
Ne normale Datei kannst du nicht mit dir suchen.

Man kann nach Dateien mit "dir" suchen,
bekommt aber als Teil-Erbegnis den Pfad der Datei angezeigt,
auf den es mir ja ankommt...da ich den ja brauche!

Die Batch könnte so aussehen:

set MyFile=

Wenn ich beispielsweise "set Pfad=dir..." machen würde,
dann steht in "Pfad" der Text hinter dem = drin!
Ich will aber das Ergebnis, also den Pfad der Datei, drin haben.

Als Folge dessen müsste ich doch mit dem Pipe Symbol: | arbeiten,
bekomme aber nicht das gewünschte Ergebnis
und/oder Fehlermeldungen...
 
Also du brauchst nur den Pfad in der Variablen ohne Dateinamen ?
Dann am besten doch ein Stück VBScript. Da hast du ne komplette Stringverarbeitung. Das Abschneiden des Namens ist dann kein Problem.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh