motorcross
Goto Top

Batch. Nach einer Datei auf dem ganzen PC suchen (also alle Laufwerke durchsuchen) und dann deren Pfad in eine Variable schreiben

Hallo Administratoren

ich versuche gerade einen Batchscript zu programmieren der nach einer Datei auf dem ganzen PC suchen soll und dann deren Pfad in eine Variable schreiben soll.
Wie könte man der Batchskript aussehen?
Wir nennen die Datei mal datei.txt
Gruß Motorcross

Content-Key: 136318

Url: https://administrator.de/contentid/136318

Printed on: April 20, 2024 at 00:04 o'clock

Member: Biber
Biber Feb 18, 2010 at 17:16:56 (UTC)
Goto Top
Moin Motorcross,

Zitat von @Motorcross:
Wie könte man der Batchskript aussehen?
Als ich diesen Satz gelesen hatte, dachte ich.... Hey, nachher nehm ich nicht den Fahrstuhl, sondern das Fenster.


Aber egal... vorher noch die Frage:
- die Datei "datei.txt"... du siehst es als gesichert an, dass die genau ein einziges Mal auf der ganzen Spielwiese von C: - Z: vorkommt?
- wenn ja, soll die Suche dann abgebrochen werden? (Wenn auf C: gefunden, dann braucht ja kein Skript noch auf D:, E: ...Z: weitersuchen)
- wenn nein... welche willst du denn schreiben in deine Variable? Die Erste? die Letzte?

Nur Lokale Festplatten untersuchen? Auch DVD? Auch Netzlaufwerke?

Schreib doch mal was zu deinem Plan...

Grüße
Biber
Member: Motorcross
Motorcross Feb 18, 2010 at 17:22:04 (UTC)
Goto Top
Hallo Biber,
also wenn die Datei auf C: gefunden wird kann die suche natürlich abbrechen
es soll nur auf festpaltten bzw. Usbsticks gesucht werden
Als Vriable kannst du %pfad% benutzen.
Gruß Motorcross
Member: Biber
Biber Feb 18, 2010 at 17:54:28 (UTC)
Goto Top
Moin Motorcross,

dann könnte das Grundgerüst so aussehen in deinem "programmierten Batchskript":

@echo off & setlocal
....
SET "dieZuSuchende=datei.txt"  
IF not defined PfadGefunden FOR /F "delims=" %%i in ('dir /b /s "c:\%dieZuSuchende%" ^2^>Nul') do Set "PfadGefunden=%%~dpi"  
IF not defined PfadGefunden FOR /F "delims=" %%i in ('dir /b /s "d:\%dieZuSuchende%" ^2^>Nul') do Set "PfadGefunden=%%~dpi"  
IF not defined PfadGefunden FOR /F "delims=" %%i in ('dir /b /s "g:\%dieZuSuchende%" ^2^>Nul') do Set "PfadGefunden=%%~dpi"  
IF not defined PfadGefunden FOR /F "delims=" %%i in ('dir /b /s "h:\%dieZuSuchende%" ^2^>Nul') do Set "PfadGefunden=%%~dpi"  

If not defined Pfadgefunden (
   echo Datei "%dieZusuchende%" nicht gefunden.  
) ELSE (
  Echo Datei "%dieZusuchende%" im Pfad "%PfadGefunden%" gefunden.  
)
...
[Ungetestet]
Du kannst natürlich auch alle (gewünschten) Laufwerke auch über eine äußere FOR-Anweisung abarbeiten.

Grüße
Biber
[Edit Tipp- bzw. Copy&Paste-Fehler, siehe unten/]
Member: Motorcross
Motorcross Feb 18, 2010 at 18:21:33 (UTC)
Goto Top
Funktioniert leider nicht könntest du es testen?
Member: bastla
bastla Feb 18, 2010 at 18:33:19 (UTC)
Goto Top
Hallo Motorcross!

Ändere jeweils "%%dpi" auf "%%~dpi" ...

Grüße
bastla
Member: Biber
Biber Feb 18, 2010 at 18:35:14 (UTC)
Goto Top
Upps,

sorry, da fehlt noch eine Tilde bei der Auflösung der abgeleiteten FOR-Laufvariablen.
Es muss "...SET "PfadGefunden=%%~dpi" heißen statt "...=%%dpi".

Ich korrigiere es oben.

Grüße
Biber