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-ID: 136318

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

Ausgedruckt am: 22.11.2024 um 14:11 Uhr

Biber
Biber 18.02.2010 um 18:16:56 Uhr
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
Motorcross
Motorcross 18.02.2010 um 18:22:04 Uhr
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
Biber
Biber 18.02.2010 um 18:54:28 Uhr
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/]
Motorcross
Motorcross 18.02.2010 um 19:21:33 Uhr
Goto Top
Funktioniert leider nicht könntest du es testen?
bastla
bastla 18.02.2010 um 19:33:19 Uhr
Goto Top
Hallo Motorcross!

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

Grüße
bastla
Biber
Biber 18.02.2010 um 19:35:14 Uhr
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