Findstr als Variable - CMD
Hallo,
ich bin Neuling bei "findstr".
Ich schaffe es, dass ich mit findstr eine Zahlenfolge aus einer txt finde, aber er gibt mir das nur in der Console aus, aber ich kann damit nichts weiter machen.
Ich möchte den gefundenen String als Variable haben um ihn weiter zu bearbeiten.
Wahrscheinlich ist das für euch eine Lapalie, aber ich habe schon viele Foren durchsucht und vieles getestet, jedoch ohne Erfolg
ich bin Neuling bei "findstr".
Ich schaffe es, dass ich mit findstr eine Zahlenfolge aus einer txt finde, aber er gibt mir das nur in der Console aus, aber ich kann damit nichts weiter machen.
Ich möchte den gefundenen String als Variable haben um ihn weiter zu bearbeiten.
@echo off
color 70
echo ------- Recherche -------
:start
echo.
echo.
echo IRN eingeben...
set /p IRN=
findstr %IRN% "W:\FAP Logistik 2-3\VSA_Sortfiles\*.txt"
echo.
findstr %IRN% "C:\Temp\Part_1\*.txt"
findstr %IRN% "C:\Temp\Part_2\*.txt"
findstr %IRN% "C:\Temp\Part_3\*.txt"
findstr %IRN% "C:\Temp\Part_4\*.txt"
findstr %IRN% "C:\Temp\Part_5\*.txt"
findstr %IRN% "C:\Temp\Part_6\*.txt"
findstr %IRN% "C:\Temp\Part_7\*.txt"
findstr %IRN% "C:\Temp\Part_8\*.txt"
findstr %IRN% "C:\Temp\Part_9\*.txt"
findstr %IRN% "C:\Temp\Part_10\*.txt"
findstr %IRN% "C:\Temp\Part_11\*.txt"
findstr %IRN% "C:\Temp\Part_12\*.txt"
findstr %IRN% "C:\Temp\Part_13\*.txt"
findstr %IRN% "C:\Temp\Part_14\*.txt"
findstr %IRN% "C:\Temp\Part_15\*.txt"
findstr %IRN% "C:\Temp\Part_16\*.txt"
findstr %IRN% "C:\Temp\Part_17\*.txt"
findstr %IRN% "C:\Temp\Part_18\*.txt"
findstr %IRN% "C:\Temp\Part_19\*.txt"
findstr %IRN% "C:\Temp\Part_20\*.txt"
goto start
Wahrscheinlich ist das für euch eine Lapalie, aber ich habe schon viele Foren durchsucht und vieles getestet, jedoch ohne Erfolg
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1062978741
Url: https://administrator.de/contentid/1062978741
Ausgedruckt am: 22.11.2024 um 08:11 Uhr
8 Kommentare
Neuester Kommentar
Zitat von @Haberl92:
da ist das Problem.
ich weiß, dass der Suchbegriff 4 mal in den Dateien vertreten ist und ich möchte jeweils die komplette Zeile als separate Variable.
Und wenn es möglich ist den Dateinamen, in der der Suchbegriff steht, auch zu der jeweiligen Variable.
Einfach in der Schleife direkt weiterverarbeiten .da ist das Problem.
ich weiß, dass der Suchbegriff 4 mal in den Dateien vertreten ist und ich möchte jeweils die komplette Zeile als separate Variable.
Und wenn es möglich ist den Dateinamen, in der der Suchbegriff steht, auch zu der jeweiligen Variable.
@echo off
for /f "tokens=1,2,* delims=:" %%a in ('findstr /ilc:"%IRN%" "C:\Temp\Part_1\*.txt"') do (
echo Dateiname: %%a:%%b
echo Zeileninhalt: %%c
)
@echo off & setlocal enabledelayedexpansion
set cnt=1
for /f "tokens=1,2,* delims=:" %%a in ('findstr /ilc:"%IRN%" "C:\Temp\Part_1\*.txt"') do (
set "Dateiname!cnt!=%%a:%%b"
set "Zeileninhalt!cnt!=%%c"
set /a cnt+=1
)
echo %Dateiname1%
echo %Zeileninhalt1%
echo %Dateiname2%
echo %Zeileninhalt2%
REM usw.
Mal lesen
Tutorial zur FOR-Schleife
Aber mal ehrlich, immer noch Batch?? Sowas fackelt man heutzutage in null komma nix in Powershell ab wenn's ne Windose ist.
Moin,
Powershell Leitfaden für Anfänger
Gruß Thomas
Zitat von @Haberl92:
da ist das Problem.
ich weiß, dass der Suchbegriff 4 mal in den Dateien vertreten ist und ich möchte jeweils die komplette Zeile als separate Variable.
Und wenn es möglich ist den Dateinamen, in der der Suchbegriff steht, auch zu der jeweiligen Variable.
dann lass CMD endlich in frieden ruhen und nimm zeitgemäß Powershell, da ist das Ganze ein klacksda ist das Problem.
ich weiß, dass der Suchbegriff 4 mal in den Dateien vertreten ist und ich möchte jeweils die komplette Zeile als separate Variable.
Und wenn es möglich ist den Dateinamen, in der der Suchbegriff steht, auch zu der jeweiligen Variable.
# Quellordner
$Source = "C:\Test"
# Abfrage der IRN
$IRN = Read-Host "IRN eingeben"
# Alle TXT-Dateien im Quellordner auflisten
$TXT = Get-ChildItem -Recurse "$Source\*.txt"
# IRN in TXT-Dateien suchen
$Result = Select-String -SimpleMatch $IRN -Path $TXT
# Mache was auch immer mit dem Ergebnis, hier: Dateiname und Trefferzeile auf der Console ausgeben
$Result | Select Filename,Line
Powershell Leitfaden für Anfänger
Gruß Thomas
Zu dem Thema "Warum nicht Powershell": Ich bin mit Powershell noch sehr wenig vertraut, aber mit CMD weiß ich doch bei weiten mehr (aber eben auch nicht alles)
Diesen Fehler begehen hier leider sehr viele.Powershell ist viel leichter und schneller zu erlernen als CMD, bietet nahezu unbegrenzte Möglichkeiten und ist bei weitem nicht so fehleranfällig.
Wenn du auch nur die Hälfte der Zeit, die du darin investieren wolltest, um deine CMD-Kenntnisse weiter auszubauen, stattdessen darin investierst, dir Powershell mal anzugucken, wirst du damit innerhalb kürzester Zeit deine CMD-Kenntnisse bei weitem übertroffen haben.