Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
Kommentar vom Moderator Biber am 30.04.2011 um 00:29:02 Uhr
Den (bis auf die suboptimale Bereichswahl vorbildlichen) Beitrag verschoben von "Windows wohl" nach "Batch & Shell".
GELÖST

Wie lassen sich Dateinamen mittels Batchdatei ergänzen?

Frage Entwicklung Batch & Shell

Mitglied: hoelderlin

hoelderlin (Level 1) - Jetzt verbinden

25.04.2011, aktualisiert 30.04.2011, 6006 Aufrufe, 10 Kommentare

Als neues Forumsmitglied und ohne formale Fachkenntnisse bitte ich um Nachsicht hinsichtlich der Präsentation meines Anliegens.

Ausgangssituation:
Pdf-Dateien in einem bestimmten Ordner (A) sollen
- mittels vorhandener OCR-Software durchsuchbar gemacht werden und
- als durchsuchbar gekennzeichnet werden sowie
- in diesem Ordner (A) neben den Originaldateien gespeichert werden.
(Betriebssystem Windows XP Professional, SP 3.)

Problem:
Die OCR-Software überschreibt die pdf-Originaldateien, erlaubt also keine Dateinamens-Ergänzung.

Work-Around:
Die OCR-Software kann die Dateien auch in einem beliebigen anderen Ordner (B) speichern.

Lösungsidee:
Speicherung in Ordner B und später Ergänzung der originalen Dateinamen in Ordner B durch z. B. "-OCR" mittels Batchdatei, sodass aus "Dateiname.pdf" "Dateiname-OCR.pdf wird".
(Anschliessend Verschieben der umbenannten Dateien mittels weiterer Batchdatei in den Ordner A, sodass dort sowohl die originalen als auch die durchsuchbaren pdf-Dateien verfügbar sind. Ein solches Skript habe ich bereits gefunden.)

Darf ich mich mit der Bitte um Unterstützung an das Forum wenden?
Mitglied: 60730
25.04.2011 um 18:46 Uhr
moin und willkommen,
Kannst du bitte noch mal etwas ausführlicher ausholen?
Pdf-Dateien in einem bestimmten Ordner (A) sollen mittels vorhandener OCR-Software durchsuchbar gemacht werden
  • ich nutze alles mögliche und unter anderem auch einen Indizierer (http://www.mnogosearch.org/), der PDFs ohne großes tamtamm durchsuchen kann.
Die OCR-Software überschreibt die pdf-Originaldateien, erlaubt also keine Dateinamens-Ergänzung.
  • welche nutzt du, kann die kommandozeilen abarbeiten, mußt du diese nehmen?
  • warum zwei /x Scripte wenn man alles mit einem Script lösen kann?

Gruß
Bitte warten ..
Mitglied: bastla
25.04.2011 um 18:49 Uhr
Hallo hoelderlin und willkommen im Forum!

Schematisch (und ungetestet) etwa so:
01.
@echo off & setlocal 
02.
set "Basis=D:\Ordner A" 
03.
set "Suffix=-OCR" 
04.
 
05.
pushd "%Basis%" 
06.
for /f "delims=" %%i in ('dir /b /a-d *.pdf^|findstr /i /v "%Suffix%"') do ( 
07.
    x:\OCR-Prog "%%i" %Temp% 
08.
    move "%Temp%\%%i" "%%~ni%Suffix%%%~xi" 
09.
10.
popd
Es werden nach einem Wechsel in den Ordner "A" alle noch nicht bearbeiteten (also noch nicht den Zusatz "%Suffix%" enthaltenden) pdf-Dateien mit dem OCR-Programm (Zeile 7 anpassen) bearbeitet, das Ergebnis im %Temp%-Ordner gespeichert und von dort - bei gleichzeitiger Umbenennung - in den Basis-Ordner zurück verschoben.

Grüße
bastla
Bitte warten ..
Mitglied: hoelderlin
25.04.2011 um 19:19 Uhr
Hallo TimoBeil,

vielen Dank für die prompte Reaktion und das "Willkommen".
Ich hoffe, der Beitrag bleibt übersichtlich, wenn ich die Zitatfunktion nutze...

Zitat von 60730:
...
Kannst du bitte noch mal etwas ausführlicher ausholen?
> Pdf-Dateien in einem bestimmten Ordner (A) sollen mittels vorhandener OCR-Software durchsuchbar gemacht werden
tamtamm durchsuchen kann.
Es handelt sich um reine pdf-Bilddateien ab Scanner, deren allfälliger Textinhalt erst mittels OCR erschlossen werden muss. Ein Indizierer wäre später noch sehr interessant, allerdings führte der Link ins Leere.

> Die OCR-Software überschreibt die pdf-Originaldateien, erlaubt also keine Dateinamens-Ergänzung.
  • welche nutzt du, kann die kommandozeilen abarbeiten, mußt du diese nehmen?
Ich nutze OmniPage Professional V17.0. Einen Kommandozeileneditor konnte ich bei der Software nicht finden. Zu wechseln kommt eher nicht in Frage.

* warum zwei /x Scripte wenn man alles mit einem Script lösen kann?
Aus rein didaktischen Gründen: ich wollte etwas lernen, und dafür sollte es übersichtlich bleiben Ausserdem hatte ich bereits eine Batchdatei zum Verschieben gefunden.

Viele Grüsse!
Bitte warten ..
Mitglied: hoelderlin
25.04.2011 um 19:44 Uhr
Hallo bastla,

auch dir vielen Dank für den freundlichen Empfang und gleich noch die Lösung zu meiner Frage.
Ich habe mal in der kurzen Zeit bis zu meiner Antwort versucht, das Skript zu durchleuchten, war aber doch überfordert durch Variablen, Parameter etc.; "pushd" und "popd" bin ich noch am suchen ...

Es werden nach einem Wechsel in den Ordner "A" alle noch nicht bearbeiteten (also noch nicht den Zusatz
"%Suffix%" enthaltenden) pdf-Dateien mit dem OCR-Programm (Zeile 7 anpassen) bearbeitet, das Ergebnis im %Temp%-Ordner
gespeichert und von dort - bei gleichzeitiger Umbenennung - in den Basis-Ordner zurück verschoben.
Obwohl die Lösung keine Wünsche mehr offen lässt, indem sie offenbar den kompletten Ablauf integriert und automatisiert, samt Aufruf der OCR-Software - könnten wir das Skript vorerst noch in Einzelteile skelettieren, damit ich es besser verstehen kann?

Wie würde die Befehlsfolge aussehen, wenn es zunächst nur um das Umbenennen der (bereits durchsuchbaren) pdf-Dateien in dem Ordner B geht, in dem sich auch das Skript befinden könnte?

Nochmals vielen Dank
und viele Grüsse

PS. Zum Nachsehen hinsichtlich Syntax habe ich diesen Link verwendet: http://de.wikibooks.org/wiki/Batch-Programmierung
Vielleicht gibt es ja noch einen anderen Tipp, damit ich mich schneller reinfinde...
Bitte warten ..
Mitglied: bastla
25.04.2011 um 19:55 Uhr
Hallo hoelderlin!

Das Umbenennen erfolgt in der Zeile 8 des obigen Batches - dabei wird auch gleichzeitig verschoben (und ich sehe eigentlich keinen Sinn darin, diesen Vorgang "künstlich" zu trennen) ...

Wenn Du bereits einen Ordner "D:\Ordner B" mit den entsprechenden Dateien befüllt hast, müsste der Batch etwa so aussehen:
01.
@echo off & setlocal 
02.
set "Basis=D:\Ordner B" 
03.
set "Ziel=D:\Ordner A" 
04.
set "Suffix=-OCR" 
05.
 
06.
pushd "%Basis%" 
07.
for /f "delims=" %%i in ('dir /b /a-d *.pdf"') do ( 
08.
    if not exist "%Ziel%\%%~ni%Suffix%%%~xi" move "%%i" "%Ziel%\%%~ni%Suffix%%%~xi" 
09.
10.
popd
Zu "pushd" und "popd": damit wird ein Ordner vorübergehend zum aktuellen Ordner gemacht (wodurch die Angabe des Pfades in den einzelnen Verarbeitungsschritten nicht mehr nötig ist) bzw am Ende wieder zum (zwischengespeicherten) vorherigen Ordner zurückgewechselt.

Mit "%%~ni" und "%%~nx" werden Name und Extension (Dateityp) der gerade in der Schleife behandelten Datei "%%i" extrahiert - siehe dazu "for /?" (ziemlich gegen Ende).
BTW: Du kannst für alle CMD-Befehle mit "Befehl /?" eine Online-Hilfe aufrufen.

In dieser Variante hier wird vor dem Verschieben (und Umbenennen) der Datei aus dem "B"-Ordner zunächst geprüft, ob noch keine gleichnamige Datei (bereits mit dem Zusatz "-OCR") im "A"-Ordner existiert, da in einem Batch "move" ohne Rückfrage bestehende Dateien überschreibet - sollte ein Überschreiben aber ohnehin gewünscht sein, einfach die Zeile 8 auf
move "%%i" "%Ziel%\%%~ni%Suffix%%%~xi"
reduzieren ...

Falls Du tatsächlich gesteigerten Wert auf ein "Umbenennen ohne Verschieben" legen solltest, wäre der Befehl dafür "ren", und die Angabe des neuen Namens müsste ohne Zielordner vorgenommen werden).
Als Tipp: Es gibt hier im Forum sehr empfehlenswerte Tutorials (zB zur FOR-Schleife von Friemler sowie Bibers Workshops).

Grüße
bastla

P.S.:
samt Aufruf der OCR-Software
würde voraussetzen, dass selbiger per Kommandozeile (mit den Übergabeparametern "Dateiname" und "Zielordner") möglich ist - falls nicht, müsste ohnehin das Erstellen der "durchsuchbaren" Dateien im Ordner "B" vorweg erledigt werden ...
Bitte warten ..
Mitglied: 60730
25.04.2011 um 20:27 Uhr
Salü,

Es handelt sich um reine pdf-Bilddateien ab Scanner, deren allfälliger Textinhalt erst mittels OCR erschlossen werden muss.
  • puh unter Windoof nutze und daher kenne ich keinen Bild2Textkonverter, der cmd basiert werkeln kann.
Ein Indizierer wäre später noch sehr interessant, allerdings führte der Link ins Leere.
!Kunststück - mit dem Apfel sieht alles anders aus. (nimm einfach die letzte klammer ) weg.
http://www.mnogosearch.org/

Gruß
Bitte warten ..
Mitglied: hoelderlin
25.04.2011 um 21:05 Uhr
Hallo bastla!

Ich habe selten in so kurzer Zeit so viel gelernt - sogar ohne didaktische Trennung von Umbenennen und Verschieben
Die Befehlsauswahl scheint mir ja hochraffiniert (%%~ni, %%~nx, pushd, popd,...), und mit Deiner Hilfe gleich noch verständlich.

Habe noch eben gegoogelt und die Eingabeaufforderung mit einigen Befehlen gefüttert bzw. die Hilfe dazu aufgerufen.

Die Prüfung auf gleichnamige Dateien macht durchaus Sinn, ich belasse die Bedingung gerne.

Falls Du tatsächlich gesteigerten Wert auf ein "Umbenennen ohne Verschieben" legen solltest, wäre der Befehl
dafür "ren", und die Angabe des neuen Namens müsste ohne Zielordner vorgenommen werden).
Nicht wirklich, es ging mir nur um die Didaktik, die dank Deiner Super-Erklärungen aber auch unabhängig davon elegant umgesetzt wurde. Dennoch probier' ich diese Variante sicher auch noch aus, wenn denn die Anleitung schon da ist ...

Als Nächstes werde ich das Skript in Betrieb nehmen und anschliessend gerne berichten.

Auch für die Tipps nochmals herzlichen Dank. Etwas Zeit ist dafür schon reserviert ...

> samt Aufruf der OCR-Software
würde voraussetzen, dass selbiger per Kommandozeile (mit den Übergabeparametern "Dateiname" und
"Zielordner") möglich ist - falls nicht, müsste ohnehin das Erstellen der "durchsuchbaren" Dateien
im Ordner "B" vorweg erledigt werden ...
Ich müsste bei OmniPage Professional V17 nochmals gezielt nachsehen, ob ein Start mit Kommandozeilenparametern möglich ist. Soweit hatte ich ursprünglich gar nicht gedacht, weil bereits der Umstand, dass ich keine Möglichkeit fand, vorhandene Dateinamen beim Speichern mit Ergänzungen zu versehen, recht viel von meiner Euphorie verbraucht hatte.
Im Moment gehe ich davon aus, dass ich die durchsuchbaren pdf-Dateien tatsächlich vorgängig in Ordner "B" erstellen muss.

Erst mal viele Grüsse
und nochmals ein DANKE

PS. Warum das "dir /b /a-d" noch im Code versteckt ist, frage ich jetzt absichtlich nicht, sondern werde das "Aha" beim Feedback nachliefern. Eine Ahnung, was dabei passiert habe ich schon...
Bitte warten ..
Mitglied: hoelderlin
25.04.2011 um 21:38 Uhr
Sali TimoBeil

Du nutzt Mac?

Jetzt hat der Link funktioniert, danke! - Die Klammer hatte ich übersehen ...
Der Indizierer wird offenbar nur für Linux als freie Software angeboten. Die Software scheint auch (bis auf die Lite-Version) etwas komplex zu sein.
Aber, es wäre ja auch erst der nächste Schritt, an den ich bisher nicht mal gedacht hatte ... Also mal sehen.

Grüsse
Bitte warten ..
Mitglied: hoelderlin
29.04.2011 um 18:24 Uhr
Nachtrag und Feedback

Hallo bastla!

Das Skript läuft nach einer Mini-Modifikation und sieht so aus (hoffe mal, ich bekomme das mit der Code-Formatierung hin):

01.
@echo off & setlocal 
02.
set "Basis=C:\test\Ordner B" 
03.
set "Ziel=C:\test\Ordner A" 
04.
set "Suffix=-OCR" 
05.
 
06.
pushd "%Basis%" 
07.
for /f "delims=" %%i in ('dir /b /a-d *.pdf') do ( 
08.
    if not exist "%Ziel%\%%~ni%Suffix%%%~xi" move "%%i" "%Ziel%\%%~ni%Suffix%%%~xi" 
09.
10.
popd 
11.
 
12.
 
13.
 
14.
REM  *.pdf"' musste noch in  *.pdf' geändert werden
Dies ist die zugehörige Ordnerstruktur:
C:\test\Ordner A 
C:\test\Ordner B
Das Nur-Umbenennen-Skript ging auch:

@echo off & setlocal 
set "Suffix=-OCR" 
 
for /f "delims=" %%i in ('dir /b /a-d *.pdf') do ( 
    ren "%%i" "%%~ni%Suffix%%%~xi" 
)
Meine Nachfrage beim Support von Nuance betr. Omni Page Professional V17 ergab, dass sich das Programm angeblich nicht per Kommandozeilen steuern lässt ...

Nochmals ein herzliches Dankeschön für die Hilfe
und schönes Wochenende!
Bitte warten ..
Mitglied: bastla
29.04.2011 um 18:32 Uhr
Hallo hoelderlin!

Ich danke Dir für einen wirklich vorbildlichen Beitrag ...

... und solltest Du doch noch auf eine commandline-taugliche Alternative zu "Omni Page" stoßen, wird das sicher viele hier interessieren.

Auch Dir ein schönes Wochenende!
bastla
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Namen mehrerer Dateien ergänzen per Batchdatei (2)

Frage von adventureman2 zum Thema Batch & Shell ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Virtualisierung
gelöst Interne Netzwerke untereinander kommunizieren lassen (9)

Frage von chelewae zum Thema Virtualisierung ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...