
usage: pdftotext [options] <PDF-file> [<text-file>]
Ich verwende pdftotext (xpft, Verwendung wie oben), um alle PDFs in einem Verzeichnis (und Unterverzeichnissen) in Textdateien umzuwandeln. Dabei spielt es keine Rolle, ob die Struktur erhalten bleibt oder nicht, ich möchte die Dateien einfach in ein anderes Verzeichnis schreiben.
Ich habe cmd cd bereits auf das Verzeichnis verweisen lassen (sagen wir „C:\input“).
Wenn also der Pfad einer gegebenen Eingabedatei
C:\input\filename.pdf
Und ich möchte ausgeben an
C:\output\filename.txt
Mein Befehl:
for /r %i in (*.pdf) do pdftotext "%i" -raw "C:\output\%i"
Funktioniert fast, aber es versucht die Ausgabe an
C:\input\C:\output\filename
was offensichtlich einen Fehler verursacht.
Wie löse ich das?
Antwort1
Wie verwende ich eine For-Schleife und gebe sie in ein anderes Verzeichnis aus?
Verwenden Sie den folgenden Befehl:
for /r %i in (*.pdf) do pdftotext -raw "%i" "C:\output\%~ni.txt"
%~ni
%i
Wird nur zu einem Dateinamen erweitert (d. h. Laufwerksbuchstabe, Pfad und.pdf
Erweiterung werden entfernt)%~ni.txt
fügt auch eine neue Erweiterung an,.txt
Erweiterte Syntax
Wenn ein Argument zum Angeben eines Dateinamens verwendet wird, kann die folgende erweiterte Syntax angewendet werden:
wir verwenden die Variable %1 (aber das funktioniert mit jedem Parameter)
%~f1 Erweitern Sie %1 zu einem vollständig qualifizierten Pfadnamen – C:\utils\MyFile.txt
%~d1 Erweitern Sie %1 nur auf einen Laufwerksbuchstaben – C:
%~p1 Erweitern Sie %1 nur zu einem Pfad, z. B. \utils\. Dies schließt ein abschließendes \ ein, das von einigen Befehlen als Escape-Zeichen interpretiert wird.
%~n1 Erweitern Sie %1 zu einem Dateinamen ohne Dateierweiterung C:\utils\MyFile oder, wenn nur ein Pfad vorhanden ist (ohne abschließenden Backslash) – zum letzten Ordner in diesem Pfad.
%~x1 Erweitert %1 nur in eine Dateierweiterung - .txt
%~s1 Ändern Sie die Bedeutung von f, n, s und x, um auf den Kurznamen 8.3 zu verweisen (sofern vorhanden).
%~1 Erweitern Sie %1 und entfernen Sie dabei alle umgebenden Anführungszeichen (").
%~a1 Zeigt die Dateiattribute von %1 an
%~t1 Zeigt Datum/Uhrzeit von %1 an
%~z1 Zeigt die Dateigröße von %1 an
%~$PATH:1 Durchsuchen Sie die Umgebungsvariable PATH und erweitern Sie %1 zum vollqualifizierten Namen der ersten gefundenen Übereinstimmung.
Die oben genannten Modifikatoren können kombiniert werden:
%~dp1 Erweitern Sie %1 nur auf einen Laufwerksbuchstaben und -pfad.
%~sp1 Erweitern Sie %1 zu einem auf 8,3 Zeichen verkürzten Pfad
%~nx2 Erweitern Sie %2 nur zu einem Dateinamen und einer Dateierweiterung
QuelleBefehlszeilenargumente (Parameter)
Weiterführende Literatur
- Ein AZ-Index der Windows CMD-Befehlszeile- Ein hervorragendes Nachschlagewerk zu allem, was mit der Windows-Eingabeaufforderung zu tun hat.