hoppala
Goto Top

Mehrfachsuche in einer Textdatei

Hi ! face-smile

Wir müssen jeden Tag im Büro mehrere Barcodes in einer grossen Textdatei suchen, welche wie folgt aussieht:

4300013990 CP 97dbb690-8213-4905-bec3-061d8f6a5ed1 20140433 pdf
5300013379 CP 83716ab4-c6d3-4193-ab89-2f528f1e2697 20140444 pdf
7500004379 CP 362c6cc8-a9db-45ff-a749-76e13a7cda63 20140455 pdf

Leider haben wir unter Win XP nur den Editor und müssen immer nach oben scrollen und die Suche neu
starten. Besteht die Möglichkeit eventuell in einer Batchdatei mehere Barcodes abzufragen und diese
auf die Textdatei loszulassen und eine Bestätigung zu bekommen ?
Eventuell hat jemand auch eine bessere Lösung ? Ist nur sehr umständlich täglich eine Riesenliste nach
Barcodes abzusuchen.
Wir geben in der Suche immer die letzten vier Zahlen ein

Also bei:

4300013990

geben wir nur:

3990

Vielen Dank im voraus face-smile
Hopps

Content-Key: 242477

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

Ausgedruckt am: 19.03.2024 um 08:03 Uhr

Mitglied: Forseti2003
Forseti2003 02.07.2014 aktualisiert um 11:03:58 Uhr
Goto Top
Hallo Hopps,

mittels einem Batch - was auch unter WinXP funktionieren sollte - kann man den Wert auslesen:

for %%i in (*.dat) do findstr /i /C:"gesuchter Wert" "%%i" >nul && MOVE /Y Quelle Ziel

die && MOVE weisen der Datei an vom Ursprung in ein anderes Verzeichnis zu wandern - der Parameter (*.dat) die Dateiextension die geprüft werden soll.

Theoretisch kannst Du also mit einem Unterordner "Vorhanden" oder ähnlich, die Datei verschieben, insofern der gesuchte Wert gefunden wird.
Andere Möglichkeit wäre nach && ein Rename oder was auch immer anzuhängen, evtl auch einfach nur die Erstellung einer TXT-Datei als Logfile.

Vielleicht hilft es Dir.

Grüße
Forseti
Mitglied: colinardo
colinardo 02.07.2014 aktualisiert um 12:02:09 Uhr
Goto Top
Hallo Hopps,
könnte man so machen:
In Zeile 2 den Dateipfad eintragen und in Zeile 3 die Endungen deiner Barcodes mit Leerzeichen als Trenner eintragen:
@echo off & setlocal
set "datei=c:\datei.txt"  
set suche=3990 4589 2569 1234 5555
for %%a in (%suche%) DO @(
  findstr /r "^[0-9]*%%a" "%datei%" >nul && echo Barcode mit dem Zahlenende '%%a' ist vorhanden || echo ACHTUNG - Barcode mit dem Zahlenende '%%a' ist nicht vorhanden.  
)
Wenn du die Werte in der Batch abfragen möchtest ohne sie fest zu hinterlegen, kannst du das so machen:
@echo off & setlocal
set /p datei=Geben sie den Dateinamen an:
set /p suche=Geben sie die Nummern mit Leerzeichen getrennt an [z.B. 1234 6789]: 
for %%a in (%suche%) DO @(
  findstr /r "^[0-9]*%%a" "%datei%" >nul && echo Barcode mit dem Zahlenende '%%a' ist vorhanden || echo ACHTUNG - Barcode mit dem Zahlenende '%%a' ist nicht vorhanden.  
)
pause
Grüße Uwe
Mitglied: hoppala
hoppala 02.07.2014 um 11:59:12 Uhr
Goto Top
Hiho Uwe !

Als ob Du meine Gedanken lesen konntest face-smile
Die zweite Batchdatei ist schon fast genau das was ich gerne haben wollte, viiiiiiiiiiiiiielen Dank face-smile !
Kann ich nur eine Pause irgendwo setzen, weil ich sehe die Meldungen leider nicht,
ob die Barcodes gefunden wurden.... die Batchdatei rutscht in einem durch. face-smile

Was mir noch aufgefallen ist, besteht die Möglichkeit den Logdateinamen manuell einzugeben ?

das wäre wohl diese Zeile ?

set "datei=c:\datei.txt"

habe gesehen, sie heisst jeden Tag anderster.

w:\successful\20140702.txt
w:\successful\20140701.txt
w:\successful\20140630.txt

usw.

Vielen Dank auch im Namen meiner ganzen Kollegen face-smile

Bis danndann
Hopps / Sven face-smile
Mitglied: colinardo
Lösung colinardo 02.07.2014 aktualisiert um 12:28:50 Uhr
Goto Top
Zitat von @hoppala:
Kann ich nur eine Pause irgendwo setzen, weil ich sehe die Meldungen leider nicht,
ist eingebaut ...
Was mir noch aufgefallen ist, besteht die Möglichkeit den Logdateinamen manuell einzugeben ?
ist auch eingebaut

Grüße Uwe
Mitglied: hoppala
hoppala 02.07.2014 um 12:28:45 Uhr
Goto Top
Vielen, vielen, vielen Dank Uwe, die Kollegen und ich sind begeistert !
Du weisst gar nicht, wieviel Arbeit uns dadurch erspart bleibt face-smile !

Bis danndann
Hopps / Sven face-smile