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
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
Please also mark the comments that contributed to the solution of the article
Content-Key: 481977
Url: https://administrator.de/contentid/481977
Printed on: April 25, 2024 at 03:04 o'clock
3 Comments
Latest comment
Moin,
in der Powershell ein Einzeiler:
Vorausgesetzt, dass die Werkzeuge und Orte keine weiteren Leertasten enthalten. Sonst die Ausgangsdatei ein wenig ändern.
und dann entsprechend in der Befehlszeile
Und ja, es geht der gesamte Zeichensatz als Suchwort.
hth
Erik
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
sehr gut - dann vergiss dass. Veraltet.
Powershell:
Der Code ließe sich massiv kürzen - ist so aber verständlicher beim "selber verstehen"
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"
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.
)