cmd befehl (finden und mehrere einzeldatein erstellen)

DaRkn3ss

Cadet 4th Year
Registriert
Mai 2014
Beiträge
69
Moin Moin,
ich weiß nicht ob das hier der passende Ort dafür ist, aber ich wüsste nicht wo sonst hin. :)

Ich versuche ein CMD Befehl zu finden der mir folgendes löst:
Finden einer/mehrere pdf dateien mit namen xyz und JEDES ergebniss in EINER datei speichern und optimal wäre sogar den Dateinamen als Namen zu verwenden.

Aktuell habe ich es geschafft es in einer Liste zu speichern, müsste jetzt aber copy&paste machen.
dir /s /b /o:en *.pdf | findstr /I "SUCHBEGRIFF" > Liste.txt

Kann jemand helfen das zu erweitern oder sprengt das die cmd grenzen?
 
verstehe das Problem gerade nicht.

Wenn ich deinen Befehl in z.b. c:\ ausführe - also Suchbegriff "test" auswähle - ausführe
wird mir in c: die Liste.txt erstellt. Inhalt
c:\temp\test.pdf
c:\user\bla\bla\test23403d_d3ld.pdf
usw.

Das ist doch schon das was du willst?

Oder möchtest du jetzt nur den Dateinamen ohne Pfad?

for /f "delims=" %i in ('dir /b /s *.pdf ^| findstr /i "SUCHBEGRIFF"') do @Echo %~nxi
Jetzt bekommst du nur die Dateinamen.
 
Wulfman_SG schrieb:
verstehe das Problem gerade nicht.
Genau mein Befehl gibt das ganze als Liste aus.

Was ich möchte wäre aber, dass er für jede gefundene Zeile eine Datei erstellt und diese Zeile dort einfügt.
Optimal wäre wenn er dazu noch die Datei an den Dateinamen anpasst.

Beispiel: Er findet
c:\temp\test.pdf
c:\user\bla\bla\test23403d_d3ld.pdf

Und erstellt dann die datei "test.txt" mit dem Inhalt "c:\temp\test.pdf"
sowie "test23403d_d3ld.txt" mit Inhalt "c:\user\bla\bla\test23403d_d3ld.pdf"


Das ganze kann auch über einen manuellen Schritt gehen, wenn man die Liste dann anders weiterverarbeitet.
Aber aktuell müsste ich halt jede Datei einzeln anlegen und die Zeile einfügen :D


EDIT: Das bennenen der Datei ist zweitranging, könnte ich mit Advanced Renamer (anhand der liste) machen, es geht mehr um den Inhalt
 
Zuletzt bearbeitet: (ergänzung)
for /f "delims=" %i in ('dir /b /s *.pdf^| findstr /i "suchbegriff"') do @Echo %i > "%~dpi%~ni.txt"

Führe ich in c:\ aus
c:\test\suchbegriff.pdf => c:\test\suchbegriff.txt => suchbegriff.txt enthalt c:\test\suchbegriff.pdf
c:\suchbegriff.pdf => c:\suchbegriff.txt => enhält c:\suchbegriff.txt



PS: will mich nicht mit fremden Federn schmücken -> ChatGPT gehört hier der Dank - hab es aber vorher natürlich getestet :=)
 
  • Gefällt mir
Reaktionen: DaRkn3ss
Wulfman_SG schrieb:
PS: will mich nicht mit fremden Federn schmücken -> ChatGPT gehört hier der Dank - hab es aber vorher natürlich getestet :=)
:D Funktioniert sogar fast so perfekt wie gewünscht.
Kriegt ChatGPT das ganze jetzt auch noch so, dass er diese Dateien in einem extra Ordner ausgibt, statt direkt neben den Datein? :D

Also z.B. in C:\ergebnisse\
Wenn nicht, dann hol ich die einfach manuell ab, nach .txt filtern kriegt der explorer hin^^
 
klar ;)

Code:
for /f "delims=" %i in ('dir /b /s *.pdf ^| findstr /i "suchbegriff"') do @echo %i > "c:\ergebnisse\%~ni.txt"
(das Verzeichnis muss existieren)
dieses mal aber NICHT getestet ;)
 
Knapp daneben ist auch vorbei ^^
So hatte ich das auch versucht, aber hatte das "%~dpi" nicht weg genommen.

Jetzt läuft das wunderbar, ich danke dir vielmals.
 
Zurück
Oben