Batch oder VBS zum kürzen des ersten Teils einer Serie von Dateinamen von Textdateien und Convertierung in PDF Dateien
Ich bin Frischling und habe keine Ahnung von Programmierung - Bitte um Verständnis
Hi Community,
Ich bin am verzweifeln, denn ich find nach tagelangem Suchen im Netz keine brauchbare Lösung
für mein Problem. Ihr seit meine letzte Hoffnung!
Ich suche nach einem VBscript oder einer Batchdatei die mir das mühsame per Hand Umbenennen einer Reihe
von txt Dateien und anschließende Convertieren in PDF Dateien abnimmt.
Wenn das mit der PDF Convcertierung schwierig ist, würde ich mich schon mit dem ersten Teil meiner
Aufgaben-Anforderung begnügen.
Das script soll:
1. von den tägl. 5-20 Textdateien die nach folgenden Schema generiert werden -
txt00001.abcdef_ghijkl.txt
txt00002.jklmn_rstuvwxyz.txt usw.
die ersten 9 Zeichen aller Dateinamen incl. dot (also txt00001.) löschen
s.d. nur noch abcdef_ghijkl.txt bleibt.
Die Zeichenzahl der Dateien variiert von Datei zu Datei.
2. Wenn möglich alle umbenannten *.txt in *.pdf
convertieren.
3. Alle *.*.txt Dateien unter 1. befinden sich im
Ordner z.B. C:\Test
Hat jemand von Euch Sezialisten eine Lösung für mich???
Gruß Rainer
Hi Community,
Ich bin am verzweifeln, denn ich find nach tagelangem Suchen im Netz keine brauchbare Lösung
für mein Problem. Ihr seit meine letzte Hoffnung!
Ich suche nach einem VBscript oder einer Batchdatei die mir das mühsame per Hand Umbenennen einer Reihe
von txt Dateien und anschließende Convertieren in PDF Dateien abnimmt.
Wenn das mit der PDF Convcertierung schwierig ist, würde ich mich schon mit dem ersten Teil meiner
Aufgaben-Anforderung begnügen.
Das script soll:
1. von den tägl. 5-20 Textdateien die nach folgenden Schema generiert werden -
txt00001.abcdef_ghijkl.txt
txt00002.jklmn_rstuvwxyz.txt usw.
die ersten 9 Zeichen aller Dateinamen incl. dot (also txt00001.) löschen
s.d. nur noch abcdef_ghijkl.txt bleibt.
Die Zeichenzahl der Dateien variiert von Datei zu Datei.
2. Wenn möglich alle umbenannten *.txt in *.pdf
convertieren.
3. Alle *.*.txt Dateien unter 1. befinden sich im
Ordner z.B. C:\Test
Hat jemand von Euch Sezialisten eine Lösung für mich???
Gruß Rainer
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 201482
Url: https://administrator.de/forum/batch-oder-vbs-zum-kuerzen-des-ersten-teils-einer-serie-von-dateinamen-von-textdateien-und-convertierung-in-201482.html
Ausgedruckt am: 21.04.2025 um 14:04 Uhr
13 Kommentare
Neuester Kommentar
Hallo RainerSp und willkommen im Forum!
Das Ubenennen ist, wenn das Namensschema wie beschrieben einheitlich ist, keine große Sache:
Wegen des "
Grüße
bastla
Das Ubenennen ist, wenn das Namensschema wie beschrieben einheitlich ist, keine große Sache:
@echo off & setlocal
set "Basis=C:\Test"
set "Schema=*.*_*.txt"
for %%i in ("%Basis%\%Schema%") do for /f "tokens=1* delims=." %%a in ("%%~ni") do @echo ren "%%i" "%%b%%~xi"
pause
echo
" vor dem "ren
" wird die Umbenennung nur simuliert, indem der entsprechende Befehl angezeigt wird - wenn's passt, einfach dieses "echo
" entfernen.Grüße
bastla
[OT]
Wenigstens mal eine neue Variante
Grüße
Biber
[/OT]
Set /a rgc+=1
#842
Wenigstens mal eine neue Variante
Grüße
Biber
[/OT]
Hallo RainerSp!
Für die Konvertierung habe ich (neben mehreren kostenpflichtigen Programmen) bei der Suche (mit den Stichwörtern "text to pdf +commandline") "text2pdf" von einem Anbieter mit dem interessanten Namen "AdultPDF" gefunden - falls Du das verwenden wolltest (ich habe es nur kurz in einer Testumgebung gestartet), wäre die Zeile 5 abzuändern auf
Grüße
bastla
Für die Konvertierung habe ich (neben mehreren kostenpflichtigen Programmen) bei der Suche (mit den Stichwörtern "text to pdf +commandline") "text2pdf" von einem Anbieter mit dem interessanten Namen "AdultPDF" gefunden - falls Du das verwenden wolltest (ich habe es nur kurz in einer Testumgebung gestartet), wäre die Zeile 5 abzuändern auf
for %%i in ("%Basis%\%Schema%") do for /f "tokens=1* delims=." %%a in ("%%~ni") do (
"%programfiles%\AdultPDF\Text To PDF\TxtToPDF.exe" "%%i" "%%~dpi%%b.pdf"
ren "%%i" "%%b%%~xi"
)
Grüße
bastla
Hallo RainerSp!
).
Grüße
bastla
die DOS Box fordert nach Start der Batch eine Eingabebestätigung
Falls damit nicht die "pause
" in Zeile 6 (war ohnehin nur für die Testphase gedacht) gemeint ist, solltest Du das noch näher beschreiben ...Das sortieren der Dateien in entsprechende Ordner bekomme ich sicher alleine hin.
Das ließe sich vermutlich auch gleich in die Schleife einbauen - mach mal (und bei Fragen einfach fragen Grüße
bastla
Hallo RainerSp!
Einen Batch "unsichtbar" ausführen kannst Du mit
Um ein Ordnerfenster zu öffnen und auch wieder schließen zu können, könntest Du ev einen alternativen Dateimanager (wie etwa "hier) - mit einem gewöhnlichen Explorer-Fenster dürfte das etwas schwierig werden ...
Grüße
bastla
Einen Batch "unsichtbar" ausführen kannst Du mit
Shell.Run "Batchdatei", 0
Grüße
bastla
Hallo RainerSp!
liefert in der Schleifenvariablen "
zerlegt für jede Datei den Namen ("
startet die "TxtToPDF.exe" und übergibt als ersten Parameter (= Quelle) die Ausgangsdatei in "
schließelich sorgt für das Umbenennen der Ausgangsdatei "
Nachlesen kannst Du die Bedeutung von zB "
Grüße
bastla
wenn auch Deine gebastelte Schleife für mich ein Buch mit 7 Siegel ist.
Soll sie aber nicht bleiben - daher kurz zum Ablauf:for %%i in ("%Basis%\%Schema%") do
%%i
" nacheinander die zu "%Basis%\%Schema%
" (also im Beispiel "C:\Test\*.*_*.txt") passenden Dateien (mit komplettem Pfad).for /f "tokens=1* delims=." %%a in ("%%~ni") do (
%%~ni"
) ohne Dateityp (als Beispiel "txt00002.jklmn_rstuvwxyz") anhand des Trennzeichens ".
" und zwar nur bei dessen erstem Auftreten (wegen "tokens=1*
" entstehen so nur 2 Teile - in "%%a
" alles vor dem ersten Punkt, in "%%b
" alles danach; auch, wenn hier noch weitere Punkte enthalten wären, würde wegen des "*
" nicht weiter getrennt). Es enthält daher im Beispiel "%%a
" den Teil "txt00002" und in "%%b
" steht mit "jklmn_rstuvwxyz" der gewünschte neue (gekürzte) Name."%programfiles%\AdultPDF\Text To PDF\TxtToPDF.exe" "%%i" "%%~dpi%%b.pdf"
%%i
" (das wäre hier "C:\Test\txt00002.jklmn_rstuvwxyz.txt") und als zweiten Parameter (= Ziel) Laufwerk und Pfad der Ausgangsdatei ("%%~dpi
" liefert "C:\Test\" mit abschließendem "\"), den neuen Namen lt "%%b
" (also "jklmn_rstuvwxyz") und den Dateityp ".pdf"ren "%%i" "%%b%%~xi"
%%i
" auf den neuen Namen "%%b
" und behält den ursprünglichen Dateityp "%%~xi
" (= ".txt") bei - hier könnte zwar ".txt" auch unmittelbar angegeben werden, mit der variablen Schreibweise bleibt der Batch aber flexibler und als ev Zusatznutzen bleibt auch zB Groß-/Kleinschreibung des Dateityps wie im Original.Nachlesen kannst Du die Bedeutung von zB "
%%~ni
" in der Online-Hilfe mit "for /?
" (ziemlich gegen Ende der Ausgabe; dass im Batch für Schleifenvariablen 2 Prozentzeichen verwendet werden müssen, wusstest Du vielleicht ohnehin schon).Grüße
bastla