Batchdatei

Hallo wissende,

wie kann ich eine Batchdatei schreiben, welche ein bestimmtes Laufwerk, nach einer x-beliebigen Datei durchsucht. Und dessen inhalt ausgibt.

bsp.:

ich will den Computernamen
–> set computername

und mein Problem ist: ich will an den PC gehen und im cmd.fenster
„set notesid“ eingeben und der PC soll mir den entspr. Inhalt ausgeben der ja in einer Datei steht. Ich hoffe, ihr versteht was ich meine!

DANKE für Eure HILFE
Benjamin

Hallo wissende,

Servus Unwissender :wink:

ich will den Computernamen
–> set computername

und mein Problem ist: ich will an den PC gehen und im
cmd.fenster
„set notesid“ eingeben und der PC soll mir den entspr. Inhalt
ausgeben der ja in einer Datei steht. Ich hoffe, ihr versteht
was ich meine!

Mit dem Set-Befehl wird der Inhalt einer Umgebungsvariablen angezeigt und sonst nichts, also keine Datei.
Set ohne Variablennamen listet alle vorhandenen Umgebungsvaribalen auf.

Den Inhalt einer Datei kann man z. B. mit dem Type-Befehl sehen.
Wenn du also den Inhalt einer Datei mit dem Namen notesid ansehen willst, dann geht das mit folgendem Befehl:
type notesid

MfG
Roland

Den Inhalt einer Datei kann man z. B. mit dem Type-Befehl
sehen.
Wenn du also den Inhalt einer Datei mit dem Namen notesid
ansehen willst, dann geht das mit folgendem Befehl:
type notesid

Hallo Benjamin,

ist es das, was Du suchst?
Oder kann es sein, das die Datei in irgendeinem Unterverzeichnis steht,
und Du weisst nicht wo?

Folgende kleine Batchdatei sucht Dir die Datei auf dem aktuellen Laufwerk:

FINDE.BAT
@echo off
dir /s /b | find „%1%“

Aufruf:
FINDE notesid

Auf Groß-/Kleinschreibung des Dateinamens achten!

Gruß
Christoph

Servus Christoph

Folgende kleine Batchdatei sucht Dir die Datei auf dem
aktuellen Laufwerk:

FINDE.BAT
@echo off
dir /s /b | find „%1%“

Aufruf:
FINDE notesid

Auf Groß-/Kleinschreibung des Dateinamens achten!

  1. Deine FINDE.BAT funktioniert nur, wenn der gesuchte Dateiname keine Leerzeichen enthält. Wenn er welche enthält, müsste man ihn nämlich beim Aufruf der Batch-Datei schon in Anführungszeichen eingeben und dann würde mit doppelten Anführungszeichen gesucht (und daher nichts gefunden) werden.

  2. Das „find“ ist unnötig.
    dir /s /b %1 findet die Datei auch und sogar ohne auf Groß-/Klein-Schreibung zu achten.

  3. Das Prozent-Zeichen am Schluss muss nicht sein, stört aber auch nicht.

Wenn es allerdings ausschließlich darum geht, die Datei „notesid“ zu suchen, funktioniert dein Vorschlag natürlich wunderbar … :wink:

Nichts für ungut
Roland

hallo

vielleicht hilft dir folgendes weiter

  1. batch datei suche.bat

@echo off
cd \
dir /s/b %1 >%TEMP%\suche.tmp
for /F %%i in (%TEMP%\suche.tmp) do call anzeige.bat %%i

aufruf mit „suche dateiname“

2.batch datei mit namen anzeige.bat

@echo off
echo %1
type %1

ciao

christian

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Christian,

also so wie Du, habe ich auch noch nicht „ge-batched“!

  1. batch datei suche.bat

@echo off
cd \
dir /s/b %1 >%TEMP%\suche.tmp
for /F %%i in (%TEMP%\suche.tmp) do call anzeige.bat %%i

Was bewirkt denn der Parameter „/F“ vor dem „%%i“ ???

(Muss ich jetzt aber x gleich ausprobieren - vielleicht ist genau DAS die Lösung für ein Problem… *g*)

Und dann noch 'ne Frage: Irgendwie steige ich nicht so ganz durch, warum da innerhalb des FIND-Befehls noch ein %-Zeichen auf Parameter1 folgt…

Danke für die Antwort…

CU DannyFox64

Hallo Christoph!

Folgende kleine Batchdatei sucht Dir die Datei auf dem
aktuellen Laufwerk:

(im aktuellen Verzeichnis-Ast?)

FINDE.BAT
@echo off
dir /s /b | find „%1%“

(wenn, dann besser doch: dir/s/b/-p | find „%1%“ )

Was bewirkt denn das abschliessende %-Zeichen im Such-String??

Für die gewählte Aufgabenstellung hätte ich den wesentl. Befehl im Batch so gemacht:

@echo off
dir \%1 /s/b/p 

Ist doch einfacher, oder?

Danke im voraus für die Antwort wegen dem „%“,

CU DannyFox64

hi

Hallo Christian,

also so wie Du, habe ich auch noch nicht „ge-batched“!

  1. batch datei suche.bat

@echo off
cd \
dir /s/b %1 >%TEMP%\suche.tmp
for /F %%i in (%TEMP%\suche.tmp) do call anzeige.bat %%i

Was bewirkt denn der Parameter „/F“ vor dem „%%i“ ???

der /F arbeitet die datei %TEMP%\suche.tmp zeilenweise ab

(Muss ich jetzt aber x gleich ausprobieren - vielleicht ist
genau DAS die Lösung für ein Problem… *g*)

Und dann noch 'ne Frage: Irgendwie steige ich nicht so ganz
durch, warum da innerhalb des FIND-Befehls noch ein %-Zeichen
auf Parameter1 folgt…

??? da komme ich nicht ganz mit, welches du meinst, wenn ich da eines weglasse funktioniert es nicht mehr:smile:

ciao
christian

Danke für die Antwort…

CU DannyFox64

Hi Christian,

danke erst x für die AW.

for /F %%i in (%TEMP%\suche.tmp) do call anzeige.bat %%i

Was bewirkt denn der Parameter „/F“ vor dem „%%i“ ???

der /F arbeitet die datei %TEMP%\suche.tmp zeilenweise ab

Zwar nicht komisch, funzt bei mir aber nicht (Win98).
Auf welchem System/Version ist denn „/F“ im for-in-do-Befehl möglich???


Und dann noch 'ne Frage: Irgendwie steige ich nicht so ganz
durch, warum da innerhalb des FIND-Befehls noch ein %-Zeichen
auf Parameter1 folgt…

??? da komme ich nicht ganz mit, welches du meinst, wenn ich
da eines weglasse funktioniert es nicht mehr:smile:

Sorry, Christian, „das“ hatte in einen anderen Artikel gehört…

CU DannyFox64

hallo

läuft unter win2k und xp

christian

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]