Top-Themen

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, 2394 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
Batch & Shell
Dateiname in Textdatei via Batch
gelöst Frage von plutowitschBatch & Shell4 Kommentare

Hallihallo, mein Problem ist wahrscheinlich für den Ein oder Anderen recht trivial, für mich als Anfänger jedoch schwieriger als ...

Batch & Shell
VBS Script in eine Textdatei ausgeben (VBS mit Batch zusammenführen)
gelöst Frage von Luuke257Batch & Shell5 Kommentare

Hallo zusammen! Vorweg, ich bin absoluter neuling im Scripten, ich habe mir das alles nur so zusammengebastelt und versuche ...

Batch & Shell
In Batch Base Convertierung?
Frage von mavericklpBatch & Shell

Moin moin zusammen, gibt es eine Möglichkeit, in einer Batch eine Baseconvertierung zu machen? Hintergrund ist der, das wir ...

Windows 7
Dateinamen in Serie erweitern
gelöst Frage von DogukannWindows 74 Kommentare

Ich möchte von einer Liste die Dateinamen um 2 Wörter und ein Zeichen erweitern. z.B. hab ich eine fortlaufende ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 15 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 20 StundenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 20 StundenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Windows XP
Windows XP Aktivieren geht nicht
Frage von tetikmiroWindows XP13 Kommentare

Hallo Ich habe einen Windows XP mit einen vCenter Converter umgezogen auf eine ESXI. Soweit funktioniert dies auch ohne ...

Blogs
Immer wiederkehrende PHP Fehlermeldung bei Wordpress UTF-8 - ASCII
gelöst Frage von vcdweltBlogs11 Kommentare

Hi, seit einiger Zeit wird mein error_log meines Wordpress Blogs mit immer der gleichen Fehlermeldung überschwemmt. 14-Dec-2017 08:18:05 UTC ...

Switche und Hubs
Redundante L2 LWL Leitung über 2 Standorte - Spanning Tree - HP Equipment
gelöst Frage von ResolvSwitche und Hubs10 Kommentare

Hallo, ich stehe vor der Herausforderung eine Redundante L2 LWL Leitung über 2 Standorte herzustellen. Grundsätzliches Switching Know How ...