newbie201

Text mit Batch Datei durchsuchen und ausgeben

Hallo,

ich bin blutiger Anfänger wenn es um batch Dateien geht, kann mir bitte jemand bei folgendem Problem helfen?

Habe eine Textdatei mit folgenden Inhalt:

Hammer Schublade 1
Zange Schublade 2
Säge Schublade 3
...

jetzt möchte ich mit einer Batch Datei folgende erreichen:


"Bitte Suchwort eingeben...
Zange
Zange befindet sich in Schublade 2

Bitte Suchwort eingeben....
lalala
konnte leider nicht gefunden werden"

sollte nicht allzu schwer sein, kenn mich aber einfach zu wenig aus.
Lassen sich auch Wörter mit Sonderzeichen abrufen?

Vielen Dank wenn mir jemand helfen kann
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 481977

Url: https://administrator.de/forum/text-mit-batch-datei-durchsuchen-und-ausgeben-481977.html

Ausgedruckt am: 13.05.2025 um 14:05 Uhr

erikro
erikro 06.08.2019 aktualisiert um 09:08:37 Uhr
Goto Top
Moin,

in der Powershell ein Einzeiler:

import-csv .\werkzeug.txt -delimiter " " -header "Werkzeug", "Ort", "Nummer" | ?{$_.Werkzeug -eq "Hammer"}  

Vorausgesetzt, dass die Werkzeuge und Orte keine weiteren Leertasten enthalten. Sonst die Ausgangsdatei ein wenig ändern.

Hammer;Schublade;1
Zange;Schublade;2
Säge;Schublade;3

und dann entsprechend in der Befehlszeile

import-csv .\werkzeug.txt -delimiter ";" -header "Werkzeug", "Ort", "Nummer" | ?{$_.Werkzeug -eq "Hammer"}  

Und ja, es geht der gesamte Zeichensatz als Suchwort.

hth

Erik
Kraemer
Kraemer 06.08.2019 um 08:58:53 Uhr
Goto Top
Zitat von @newbie201:
ich bin blutiger Anfänger wenn es um batch Dateien geht,
sehr gut - dann vergiss dass. Veraltet.

Powershell:
$Schrank=Import-Csv -Path "C:\temp\Schrank.csv" -Delimiter " " -Header "Werkzeug","Fach","Nr"  
While ($true) {
    $Search=Read-Host -Prompt "Bitte Suchwort eingeben..."  
    If ($Search -in $Schrank.Werkzeug){
        $Ergebnis=$Schrank | Where-Object -Property "Werkzeug" -eq $Search  
        Write-Host ($Search+" befindet sich in "+$Ergebnis.Fach+" "+$Ergebnis.Nr)  
    } else {
        Write-Host "konnte leider nicht gefunden werden"  
    }
}

Der Code ließe sich massiv kürzen - ist so aber verständlicher beim "selber verstehen"
140777
140777 14.08.2019 aktualisiert um 16:48:37 Uhr
Goto Top
Um die Frage trotzdem der Vollständigkeit halber auch noch in Batch zu beantworten
@echo off &setlocal
set "file=D:\testdaten.txt"  
set /p "search=Bitte Suchbegriff eingeben: "  
for /f "tokens=1,*" %%a in ('findstr /iblc:"%search%" "%file%" 2^>nul') DO set "result=%%b"  
if defined result (
	echo '%search%' befindet sich in '%result%'.	  
) else (
	echo Suchwort nicht gefunden.
)