Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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

Batch oder VBS zum kürzen des ersten Teils einer Serie von Dateinamen von Textdateien und Convertierung in PDF Dateien

Frage Entwicklung Batch & Shell

Mitglied: RainerSp

RainerSp (Level 1) - Jetzt verbinden

09.02.2013 um 12:12 Uhr, 2391 Aufrufe, 13 Kommentare

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
Mitglied: bastla
09.02.2013 um 13:18 Uhr
Hallo RainerSp und willkommen im Forum!

Das Ubenennen ist, wenn das Namensschema wie beschrieben einheitlich ist, keine große Sache:
01.
@echo off & setlocal 
02.
set "Basis=C:\Test" 
03.
set "Schema=*.*_*.txt" 
04.
 
05.
for %%i in ("%Basis%\%Schema%") do for /f "tokens=1* delims=." %%a in ("%%~ni") do @echo ren "%%i" "%%b%%~xi" 
06.
pause
Wegen des "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
Bitte warten ..
Mitglied: RainerSp
09.02.2013 um 14:00 Uhr
Hi bastla,
ich bin begeistert!!! Das funktioniert richtig gut. Tja, wenn man weiß wie es geht.
Vielen Dank!
Wenn es nun noch mit dem 2.Teil der Aufgabe klappen würde, also der Konvertierung
der umgewandelten abc_def.txt Dateien in abc_def.pdf Dateien per Batch oder Script
wäre ich total happy.
Viele Grüße Rainer
Bitte warten ..
Mitglied: Biber
09.02.2013 um 15:25 Uhr
[OT]
Zitat von bastla:
Das Ubenennen ist, wenn das Namensschema wie beschrieben...
Set /a rgc+=1
#842
Wenigstens mal eine neue Variante

Grüße
Biber
[/OT]
Bitte warten ..
Mitglied: bastla
09.02.2013, aktualisiert um 20:04 Uhr
[OT 2] @ Biber
Dass ich das noch erleben musste ...

Grüße
bastla
[/OT 2]
Bitte warten ..
Mitglied: bastla
11.02.2013, aktualisiert um 15:48 Uhr
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
01.
for %%i in ("%Basis%\%Schema%") do for /f "tokens=1* delims=." %%a in ("%%~ni") do ( 
02.
    "%programfiles%\AdultPDF\Text To PDF\TxtToPDF.exe" "%%i" "%%~dpi%%b.pdf" 
03.
    ren "%%i" "%%b%%~xi" 
04.
)

Grüße
bastla
Bitte warten ..
Mitglied: RainerSp
12.02.2013 um 23:37 Uhr
Hallo bastla,
Du bist ein Genie!!!! Das ist ja sowas von genial.
Ich habe mich bisher immer mit PDF-Umgehungsprogrammen,
die nur Zeit kosten geplagt...aber so ist das wunderbar.
Einzige Hürde - die DOS Box fordert nach Start der Batch
eine Eingabebestätigung. Wie kann man das umgehen?
Das sortieren der Dateien in entsprechende Ordner bekomme
ich sicher alleine hin.
Nochmals vielen vielen Dank!!!!
Bitte warten ..
Mitglied: bastla
12.02.2013 um 23:44 Uhr
Hallo RainerSp!
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
Bitte warten ..
Mitglied: RainerSp
13.02.2013 um 19:56 Uhr
Hallo bastla,
eigentlich läuft das vbScript, wo ich Deine Batch eingebaut habe recht flüssig. Aber mit jeder Verbesserung wächst auch der Anspruch, die Sache noch etwas perfekter zu gestalten.
Gelöst für mich hast Du meine Probleme mit dem Kürzen der *.*.txt Dateien und die Einbindung dieses genialen und
wirkllich schnell konvertierden PDF Tools. Die konvertierten PDF Dateien landen neben den veränderten *.txt Dateien im selben Ordner. Ich habe jetzt eine weitere Batchdatei in das vbscript gelegt, welche die PDF Dateien in einen anderen Ordner verschiebt und danach die nicht mehr benötigten *.txt Dateien löscht (vorher aber noch in einem neuen Ordner mit Zeit- und Datumsstempel eine Sicherungskopie anlegt). Das klappt alles bestens. Vor Löschung und Fertigung der Sicherungskopie wird der Ordner mit den *.pdf Dateien nochmals zur Kontrolle geöffnet und eine MsBox kommt mit der Frage ob alles oK und der Löschvorgang starten kann.Wie gesagt, klappt alles aber es gibt kleine "Hackser".
Warum kann ich nicht das ganze vbscript im Hintergrund ablaufen lassen. Es öffnet sich immer das DOS promt Fenster.Wird eine Verknüpfung des vbscripts erstellt und dann unter Einstellungen Fenster minimiert eingestellt öffnet sich die DOS Box wenigstens nur kurz. Geht das anders? Das zweite klitzekleine Problem - bei der Kontrolle vor dem Löschen und der Sicherung der *.txt Dateien soll sich nochmal zur KOntrolle der Ordner mit den erstellten *.pdf dateien öffnen. Es ist mir gelungen die sich dann im scriptverlauf öffnende MsBox so anzulegen, daß sie immer im Vordergrund bleibt. Ich habe aber keine Idee, wie ich den geööfneten Odner über das vbscipt wieder schließen kann.Da er nicht im Vordergrund ist, klappt es auch nicht ohne weiteres mit sendkeys Strg und F4, Es geht, wenn ich im script 3x nacheinander Strg und F4 schreibe. Das ist aber doch nicht professionel!!! Geht das auch anders?? Nochmals, mein script funktioniert aber vielleicht gehts noch etwas besser!?
Herzliche Grüße RainerSp
Bitte warten ..
Mitglied: bastla
13.02.2013 um 21:11 Uhr
Hallo RainerSp!

Einen Batch "unsichtbar" ausführen kannst Du mit
Shell.Run "Batchdatei", 0
Um ein Ordnerfenster zu öffnen und auch wieder schließen zu können, könntest Du ev einen alternativen Dateimanager (wie etwa "Explorer++") starten und wieder beenden (Beispielcode zB hier) - mit einem gewöhnlichen Explorer-Fenster dürfte das etwas schwierig werden ...

Grüße
bastla
Bitte warten ..
Mitglied: RainerSp
14.02.2013 um 18:20 Uhr
Hallo bastla,
Shell.run "Batchdatei", 0 hat nicht funktioniert aber
Shell.run "Batchdatei",0,True
darunter läuft alles schön im Hintergrund und kein DOS Fenster blinkt auf.
Ich habe in den Tagen viel gelernt, wenn auch Deine gebastelte Schleife für mich
ein Buch mit 7 Siegel ist. Hauptsache es funktioniert und das macht es jetzt
wunderbar. Nochmals 1000 Dank für Deine immer prompte und schnelle Hilfe.
Wenn ich wieder Probleme oder eine Idee für ein neues Script brauche, weiß
ich, an wen ich mich wenden muss.
Viele Grüße RainerSp
Bitte warten ..
Mitglied: bastla
14.02.2013, aktualisiert um 18:48 Uhr
Hallo RainerSp!
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
liefert in der Schleifenvariablen "%%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 (
zerlegt für jede Datei den Namen ("%%~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"
startet die "TxtToPDF.exe" und übergibt als ersten Parameter (= Quelle) die Ausgangsdatei in "%%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"
schließelich sorgt für das Umbenennen der Ausgangsdatei "%%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
Bitte warten ..
Mitglied: RainerSp
19.02.2013 um 17:32 Uhr
Hallo bastla,
vielen Dank für Deine erklärenden Worte. Werde das mal in einer ruhigen
Stunde durchdenken und nachvollziehen.
Habe aktuell aber ein anderes Problemchen.
Gibt es ein Batchbefehl zum maximieren eines vonher minimierten
Win Fensters. Mit nircmd kann man ein minimiertes Fenster schließen
aber um ein bestimmtes Fenster was klein abgelegt wurde wieder zu maximieren finde
ich nichts. Vielleicht hast Du eine Idee??
Gruß Rainer
Bitte warten ..
Mitglied: RainerSp
20.02.2013 um 12:59 Uhr
Alles bestens, habe selber bei nircmd die Lösung für
das Maximieren eines Fensters gefunden.
RainerSp
Bitte warten ..
Ähnliche Inhalte
Windows 10
gelöst Vbs oder batch zum Ändern von Dateinamen ab Zeichenkette (13)

Frage von vbaGast zum Thema Windows 10 ...

VB for Applications
gelöst Tool zur scriptbasierten PDF-Bearbeitung gesucht (VBS oder Batch) (6)

Frage von SarekHL zum Thema VB for Applications ...

Batch & Shell
gelöst Zwei PDF-Dateien zusammen führen per Batch (3)

Frage von hongziehong zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Datei: PDF Dateien verschieben, umbenennen und löschen (4)

Frage von F0rcehunter zum Thema Batch & Shell ...

Neue Wissensbeiträge
Firewall

PfSense Repository für Version 2.3.x

(2)

Information von Dobby zum Thema Firewall ...

LAN, WAN, Wireless

WPA-2 hat erste Risse: KRACK

(4)

Information von the-buccaneer zum Thema LAN, WAN, Wireless ...

Hardware

GPD Pocket: Winziger Laptop für Wenig Tipper

(1)

Information von pelzfrucht zum Thema Hardware ...

Windows 10

Microsoft veröffentlicht das "Fall Creators Update

(10)

Information von Penny.Cilin zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Server
gelöst Gruppenrichtlinie greift nicht zu! (23)

Frage von Syosse zum Thema Windows Server ...

Hosting & Housing
Mailserver Software Empfehlungen (20)

Frage von sunics zum Thema Hosting & Housing ...

Windows 7
gelöst Windows 7 Anmeldedomäne festlegen (13)

Frage von flotaut zum Thema Windows 7 ...