Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
Kommentar vom Moderator Biber am 07.10.2009 um 11:49:30 Uhr
Verschoben von "Tools & Utilities" nach "Batch & Shell".
GELÖST

Suchausdruck in Datei schreiben

Frage Entwicklung Batch & Shell

Mitglied: bodyparts

bodyparts (Level 2) - Jetzt verbinden

06.10.2009, aktualisiert 07.10.2009, 3914 Aufrufe, 9 Kommentare

Hallo,

ich muss über eine Ordner einen Ausdruck in TXT Dateien suchen, wird dieser Ausdruck gefunden, möchte ich gerne eine Liste haben in der steht in welchem Ordner diese Datei bzw der Ausdruck liegt.

"Mein" Überlegung auf Basis eines anderen Posting

Mit freundlichen Grüßen an Bastla

@echo off & setlocal

set "Ordner=X:\Daten\"
set "Datei=Daten_info.txt"
set /P suche=Wert eingeben:


for /d %%i in ("%Ordner%*.*") do call :ProcessDir "%%i"

goto :eof

:ProcessDir

if not exist "%~1\%Datei%" goto :eof

set /p Name=<"%~1\%Datei%"
echo %Name%
pause
if %Name%=%suche% then echo %Name%%Ordner% >> %Ordner%Ausgabe.txt


goto :eof



In der Datei Ausgabe.txt sollten dann die Ordner gelistet sein indem der Ausdruck liegt bzw in der txt Datei steht.

gruß
Mitglied: Biber
06.10.2009 um 20:40 Uhr
Moin bodyparts,

drei Rückfragen.

1) warum postest Du diese Frage unter "Tools & Utilities?

2) Verbietet dir deine Religion das Verwenden von Codetags? Soll ich mal koschere besorgen?

3) Wieso fackelst du das Ganze nicht mit einem Oneliner vom CMD-Prompt aus ab?
01.
@for /d %i in (X:\Daten\*) do @Findstr /i  /C:"Dein Suchwert" %i\Datei_info.*>nul && @echo %i
Grüße
Biber
Bitte warten ..
Mitglied: bodyparts
07.10.2009 um 09:13 Uhr
Moin Biber....

zu 1. darfst es gerne verschieben
zu 2. ich glaube nicht, gerne darfst du mir die Codetags erklären bzw eine Link senden
zu 3. würde ich gerne, evtl denke ich zu umständlich

beim testen blickt die batch einmal kurz.... selbst eine Pause stop diese nicht.... werden Unterordner berüchsichtigt? Es brauchen nur *.txt Dateien durchsucht werden.

meine Änderungen...

@for /d %i in (C:\Daten\*) do @Findstr /i /C:"HAUS C" %i\Daten_info.*>nul && @echo %i

pause

sorry noch ohne "Tags"

gruß
Bitte warten ..
Mitglied: Biber
07.10.2009 um 12:07 Uhr
Moin bodyparts,

Zitat von bodyparts:
Moin Biber....

zu 1. darfst es gerne verschieben
DONE.

zu 2. ich glaube nicht, gerne darfst du mir die Codetags erklären bzw eine Link senden
Wenn du einen Beitrag/einen Kommentar schreibst, dann siehst du oberhalb des texteingabefensters einen Link namens "Formatierungshilfe". Wenn du dort klickst, geht ein zusätzliches Popup-Fensterchen auf, in dem u.a. die Formatierung von Quellcode beschrieben wird.
Wenn Du Programmcode, z.B. einen Batchschnipsel mit Zeilennummern und ansonsten so, wie er per Copy&Paste hier ankommt posten willst, dann schreibe vor den Quellcode ein "< code >" und nach der letzten Quellcodezeile ein ">/ code >" jeweils ohne Anführungszeichen und Leerzeichen.

zu 3. würde ich gerne, evtl denke ich zu umständlich
Jein... ich würde eher sagen, wenn du von "übernommenem" Sourcecode ausgehst und den versuchst so hinzubiegen, dass er bei dir passt, dann besteht immer die Gefahr, das es viel umwegiger wird, als wenn du den direkten Weg gehst (=" deine eigene Lösungsstrategie entwickelst")

beim testen blickt die batch einmal kurz.... selbst eine Pause stop diese nicht....
Weil es keine Batch-Datei ist, sondern nur eine Zeile, die du direkt vom CMD-Prompt abfeuern solltest.
Bitte öffne dir ein CMD-Fenster ("Start"->"Ausführen"->cmd [ENTER].

Später, wenn es funktioniert, kannst du es als batchdatei speichern und dazu alle einfachen %-zeichen (%i, %j...) in doppelte %-Zeichen ändern (%%i, %%j..).
Später!

werden Unterordner berüchsichtigt?
Ja, aber nur (wie in bastlas Vorlage) EINE Ebene unterhalb des Startverzeichnisses C:\Daten.
Es brauchen nur *.txt Dateien durchsucht werden.
Okay, das war Tipp-Faulheit von mir, dann statt
01.
@for /d %i in (C:\Daten\*) do @Findstr /i /C:"HAUS C" %i\Daten_info.*>nul && @echo %i
jetzt neu.
01.
@for /d %i in (C:\Daten\*) do @Findstr /i /C:"HAUS C" %i\Daten_info.txt>nul && @echo %i
Grüße
Biber
Bitte warten ..
Mitglied: bodyparts
07.10.2009 um 12:24 Uhr
okay... danke erstmal...

ich habe mich schon über die %i gewundert, warum mal 1mal bzw dann wieder 2mal. Warum ist das so, wenn ich fragen darf?

dirket in der cmd Box sieht es gut aus.... könntes du die Ordner noch abfangen in dem keine Datei ist?

gruß
Bitte warten ..
Mitglied: Biber
07.10.2009 um 12:43 Uhr
Moin bodyparts,

zu deiner ersten Frage (warum %i am CMD-Prompt und %%i im Batchfile):

Die CMD.exe, die "Windows-Shell" kann
  • entweder interaktiv von der so genannten "Eingabeaufforderung" genutzt werden, jeweils eine Befehlszeile gefolgt von ENTER, dann die Ausführung
  • oder im Batchmodus, mehrere Befehlszeilen nacheinander ohne Benutzerinteraktion.

Im beiden Modi sind jeweils einige Befehle des gesamten Befehlssatzes wirkungslos (z.B goto am CMD-Prompt); ein weiterer Unterschied ist die Schreibweise der dynamischen Variablen (== fie Laufvariablen der FOR-Anweisungen). Nimm es einfach als gatesgegeben hin.

Zweite Frage, Ordner ignorieren, die keine Datei dieses Namens enthalten
01.
@for /d %i in (C:\Daten\*) do @Findstr /i /C:"HAUS C" %i\Daten_info.txt>nul 2>nul && @echo %i
Grüße
Biber
Bitte warten ..
Mitglied: bodyparts
07.10.2009 um 13:21 Uhr
Hallo Biber,

in der Shell sieht es gut aus!

Jetzt in einer Batch mit Eingabe des suchwerts und Ausgabe in eine Datei die den Namen des Suchwertes enthält, so der Ursprungsgedanke....

01.
 
02.
set /P suche=Wert eingeben: 
03.
 
04.
 
05.
@for /d %%i in (C:\Daten\*) do @Findstr /i /C:"%suche%" %%i\Daten_info.txt>nul 2>nul && echo >> c:\Daten\%suche%.txt %%i 
06.
 
kein Ergebniss...

erkennst du den Fehler?

Grüße Bodyparts
Bitte warten ..
Mitglied: Biber
07.10.2009 um 13:47 Uhr
Moin bodyparts,

der Teil nach dem "&&" (==wenn was gefunden) ist noch nicht ganz richtig.

Die normale Syntax einer Echo-Umleitung ist:
ECHO text-zum-umleiten [>|>>] zieldatei
..also in Deinem Fall
... Echo %%i>>"c:\daten\%suche%.txt"

Das Ziel (c:\datan\%suche%.txt) habe ich in Anführungszeiechen gesetzt, fall der Suchstring aus mehreren Teilen besteht/ein leerzeichen einschliesst.

Grüße
Biber
Bitte warten ..
Mitglied: bodyparts
07.10.2009 um 14:14 Uhr
Hallo Biber,

es läuft. Perfekt!

den echo Befehl kenn ich eingentlich, aber halt ein Fehler. Denn Suchstring hätte ich mir denken können, das der nicht in Anführungszeichen kommt.

Danke Dir.

Gruß Bodyparts
Bitte warten ..
Mitglied: bodyparts
08.10.2009 um 13:46 Uhr
Hallo Biber,

ich würde gerne die Frage aus meinem letzen Posting gerne hier ansetzen, weil es eine Ergänzung der "Suche" bzw ein Listing sein soll von dem was gesucht und in die Datei geschrieben worden ist.

Die Batch läuft ja prima, jetzt möchte ich gerne den gesuchten Wert als Liste vor der neuen Abfrage in der Batch anzeigen lassen.

Also

01.
Echo %%i>>"c:\daten\gesuchte_werte.txt"
Dazu hast du ein Posting beantwortet.

01.
@echo off & setlocal  
02.
for /f "usebackq delims=" %%i in ("c:\daten\gesuchte_werte.txt") do "set A=%%i" & call :ProcessLine 
03.
goto :eof 
04.
 
05.
:ProcessLine 
06.
 
07.
echo Gelesene Zeile: %A%  
08.
::Auswertung hier  
09.
if /i "%A%"=="Start" goto :Start  
10.
 
11.
usw
Jetzt soll in der Anzeige eine Auswahl möglich sein die dann zum Ordner springt und dort eine jpg Datei öffnet.

Ein Abfrage soll nun klären ob man zu dem Ordner wechseln möchte mit ( start explorer %ordner% )

Hoffe das es okay ist ,wenn das Posting ergänzt wird.

Die fertige Batch verwaltet Fotos und gibt nach Suchwerten dem User die Möglichkeit direkt in den Ordner zu springen.
Kann man wohl eine jpg Datei in der Batch anzeigen? Ich würde jetzt ein Tool suchen welches aus der Batch springt die Datei anzeigt und wenn nicht zb ein "j" für ja gedrückt wird wieder in die Abfrage geht.

gruß bodyparts
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst Batch-Skript: Messdaten in Textdatei finden und in eine neue Datei schreiben (5)

Frage von habmalnefrage zum Thema Batch & Shell ...

Batch & Shell
gelöst 2 große TXT Dateien vergleichen und Unterschiede in andere Datei schreiben (6)

Frage von sid.pdm zum Thema Batch & Shell ...

Windows Systemdateien
gelöst Registry-Schlüssel per Batch auslesen und in Datei schreiben (9)

Frage von Philzip zum Thema Windows Systemdateien ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (21)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

Exchange Server
DNS Einstellung - zwei feste IPs für Mailserver (15)

Frage von ivan0s zum Thema Exchange Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...