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
GELÖST

Datei Eigenschaften per Batch ändern

Frage Entwicklung Batch & Shell

Mitglied: Valume91

Valume91 (Level 1) - Jetzt verbinden

30.08.2011, aktualisiert 18.10.2012, 11446 Aufrufe, 27 Kommentare

Benötige Hilfe bei einer Batch Datei.

Hallo zusammen

Folgendes Szenario:
Ich habe in einem Ordner hunderte PDF Dateien.
Diese sind wie folgt aufgebaut (Beispiele):
"327209 3_29_0334.pdf"
"328644 3_27_0064.pdf"
"328644 3_29_0005 A.pdf"
"3_29_0001 1.pdf"
"3_28_0009.pdf"

Nun möchte ich ein Script schreiben welches jeweils den folgenden Teil:
Bsp. 3_29_0005
des Dateinamens nimmt und bei den Eigenschaften der Datei als Titel einträgt.

Das auslesen des genannten Teils könnte ich mit meinen knappen Batch Kentnissen schaffen,
allerdings habe ich keine Ahnung wie ich den Titel des Dokuments bearbeiten kann.

MfG Valume
27 Antworten
Mitglied: 60730
30.08.2011 um 15:41 Uhr
moin,

zum Thema "stricken mit und um PDF Dateien" kann ich dir nur den Rat geben


Aber - ok du schreibst das du das schon gelöst hast...

Nun möchte ich ein Script schreiben welches jeweils den folgenden Teil:
*__** (Bsp. 3_29_0005)

Wie du von
3_29_0005 auf  *__** 
kommst - das verstehe ich nicht wirklich.....

Gruß
Bitte warten ..
Mitglied: Skyemugen
30.08.2011 um 15:47 Uhr
Zitat von 60730:
Wie du von
3_29_0005 auf  *__** 
kommst - das verstehe ich nicht wirklich.....

Aloha T-Mo,
[OT]
weil deine Augenklappe vom Avatar zu eng sitzt *stänker*

Ist doch nur ein zu schneller Tipper von *_*_* zu *__** - das fehlende Korrekturlesen kann man ihm jetzt vorwerfen aber das kann man vielen Leuten hier, die Threads erstellen
[/OT]
greetz André
Bitte warten ..
Mitglied: Valume91
30.08.2011 um 15:49 Uhr
Hi TimoBeil

Sorry mein (?) Fehler.
Sollte eigentlich heissen:
1_11_1111 (ersetzte die 1en durch *e)

Was du genau mit PDFTK bewirken willst verstehe ich allerdings nicht.
Ich möchte blos ein Teil des Dateinamens als Titel der Datei speichern (Rechtsklick--> Eigenschaften --> Dateiinfo).
Da spielt es keine Rolle ob das nun ein pdf oder ein txt file ist.

Aber vieleicht verstehe ich dich auch falsch.

lg Valume
Bitte warten ..
Mitglied: 99045
30.08.2011 um 15:53 Uhr
gelöscht. Irgendwie war da im letzten Beitrag des TE der Wurm drin.
Bitte warten ..
Mitglied: 99045
30.08.2011 um 16:09 Uhr
Zitat von Valume91:
Das auslesen des genannten Teils könnte ich mit meinen knappen Batch Kentnissen schaffen,
Das halte ich für ein Gerücht, du schaffst es ja nicht einmal, vernüftig zu beschreiben, was du eigentlich im Dateinamen womit ersetzen willst.

allerdings habe ich keine Ahnung wie ich den Titel des Dokuments bearbeiten kann.
Vielleicht mit dem Programm, das dir TimoBeil genannt hat. Mit Batch jedenfalls nicht.
Bitte warten ..
Mitglied: rubberman
30.08.2011 um 16:16 Uhr
Hallo Valume91.

Per Batch auf die erweiterten Dateieigenschaften zuzugreifen geht IMHO garnicht.
Mit Bordmitteln kannst du VBScript benutzen, aber auch nur zum Lesen der Eigenschaften. Zum Schreiben / Ändern ist mir keine scriptbare Methode bekannt.
Sicher gibt es Tools, die du dir downloaden kannst und diese Arbeit für dich verrichten.

Grüße
rubberman
Bitte warten ..
Mitglied: Skyemugen
30.08.2011 um 16:24 Uhr
Zitat von Valume91:
Was du genau mit PDFTK bewirken willst verstehe ich allerdings nicht.
Ich möchte blos ein Teil des Dateinamens als Titel der Datei speichern (Rechtsklick--> Eigenschaften --> Dateiinfo).
Da spielt es keine Rolle ob das nun ein pdf oder ein txt file ist.

Aber vieleicht verstehe ich dich auch falsch.

Aloha,

vielleicht drückst du dich dann nicht genügend aus?

PDFTK kann Metadaten von PDF ändern, ich gehe davon aus, dass darunter auch Titel fällt, wenn du also im EP etwas von
Ich habe in einem Ordner hunderte PDF Dateien.
schreibst, wäre T-Mos Link genau das, was du benötigst.

Solltest du jedoch weitere Dateitypen haben, für dein Vorgehen, dürfte das nur mit VisualBasic (eventuell sogar VisualBasicScript) umsetzbar sein.

greetz André
Bitte warten ..
Mitglied: 60730
30.08.2011 um 16:36 Uhr
Servus,

ok - wenn es "so" ist...

Du brauchst:
*`ein Script, dass ~ sowas macht:

01.
If WScript.Arguments.Count <> 2 Then 
02.
   msgbox "Aufruf so nicht richtig" 
03.
Else 
04.
 
05.
Dim Obj, File, Info 
06.
Set Obj = WScript.Arguments 
07.
File = Obj(0) 
08.
Info = Obj(1) 
09.
Set objFile = CreateObject("DSOFile.OleDocumentProperties") 
10.
objFile.Open(File) 
11.
objFile.SummaryProperties.Title = Info 
12.
objFile.Save 
13.
end if
Und ein anderes Script, das dieses mit cscript /nologo Dateiname Dateiinfo aufruft.

So jetzt hab ich da xxx minuten getestet, telefoniert und Gedöhnst, der Fred ist zu 99.9% eh erledigt - who cares...

gruß
Bitte warten ..
Mitglied: bastla
30.08.2011, aktualisiert 18.10.2012
@T-Mo
Danke für das DSO-Beispiel - [Edit] kannte ich auch noch nicht hatte ich seit damals glatt vergessen [/Edit] ...
Als Ergänzung zu Deinem Link oben: Abfragen und Aktualisieren der Meta-Informationen einer PDF-Datei

Grüße
bastla
Bitte warten ..
Mitglied: 60730
30.08.2011 um 17:24 Uhr
Servus Bastla

Zitat von bastla:
@T-Mo
Danke für das DSO-Beispiel - kannte ich auch noch nicht ...

  • jetzt - wo du es so schreibst ... Ich editiere das fehlende Info beim Dim noch dazu - ist mir weder beim schreiben noch beim Testen aufgefallen...

Grüße
Bitte warten ..
Mitglied: 99045
30.08.2011 um 17:47 Uhr
Zitat von rubberman:
Zum Schreiben / Ändern ist mir keine scriptbare Methode bekannt.

Keine? Auch nicht AutoIt?
Mit Rechtsklick auf die Datei > Eigenschaften > Dateiinfo
lassen sich auch alle Einträge bearbeiten.
Bitte warten ..
Mitglied: rubberman
30.08.2011 um 17:59 Uhr
Hallo Kaputtnick.

Ich hatte von "Bordmitteln" gesprochen. Da liegt T-MO's Variante noch am nächsten, obwohl auch dabei eine Erweiterung des ActiveX nötig ist.
Und ...
... die Eigenschaften per Hand zu ändern, hat nun so garnichts mit einer automatisierten Abhandlung des Problems zu tun.

Grüße
rubberman
Bitte warten ..
Mitglied: ovu-p86
30.08.2011 um 18:02 Uhr
Hallo Valume91,

mit BeCyPDFMetaEdit kannst du das realisieren. Da das Tool sowohl mit GUI-Oberfläche wie auch als
Kommandozeilentool funktioniert, kannst du per Batch die Metadaten ändern.

BeCyPDFMetaEdit

(Kl. Tipp: Das Programm muß zwar installiert werden, funktioniert aber auch portable wenn man den Programmordner
anschließend an eine beliebige Stelle kopiert/verschiebt. Habs damals erst installiert, den Programmordner
kopiert und dann wieder deinstalliert. Ich liebe portable Programme)


Gruß
Uwe


edit
ich weiß, sind keine Bordmittel. Aber da das Programm portable funktioniert doch fast
Bitte warten ..
Mitglied: 99045
30.08.2011 um 18:09 Uhr
Hallo, rubberman,

Ich hatte von "Bordmitteln" gesprochen.
Stimmt, im Satz davor, "keine scriptbare Methode" ist ein neuer Satz, den man auch für sich getrennt und unabhängig vom vorhergehenden betrachten kann und darf.

... die Eigenschaften per Hand zu ändern, hat nun so garnichts mit einer automatisierten Abhandlung des Problems zu tun.
Mit AutoIt ändert man nichts per Hand, sondern erstellt ein Script, dass die ganze Aktion für einen durchführt. Für mich ist das eine scriptbare Methode.
Du denkst doch sonst auch immer um 26 Ecken, um etwas fertigzustellen?

Gruß
Bitte warten ..
Mitglied: 99045
30.08.2011, aktualisiert 18.10.2012
Zitat von bastla:
hatte ich seit damals glatt vergessen.

So fängt's manchmal an: Dementia praecox
Bitte warten ..
Mitglied: rubberman
30.08.2011 um 18:30 Uhr
Hallo Kaputtnick,

das geht ähnlich auch mit VBScript und SendKeys. Aber sorry, das sind Krücken die ich nicht ernsthaft in Betracht ziehen würde Ist mit Sicherheit von der Windowsversion abhängig, wieviele Tabs und Pfeiltastenanschläge man simulieren müsste, um dort zu landen wo man es braucht. Und wenn das Fenster zwischendrin den Focus verliert ist Schluss mit lustig...

Grüße
rubberman
Bitte warten ..
Mitglied: bastla
30.08.2011 um 20:22 Uhr
Hallo @All!

Um das Ganze vielleicht einem Ende näher zu bringen: Unabhängig vom letztlich verwendeten Werkzeug könnte die Schleife drumherum etwa so aussehen:
01.
pushd "D:\Ordner mit den vielen PDF" 
02.
for /f "delims=" %%i in ('dir /b *_*_*.pdf') do for %%a in (%%~ni) do echo "%%a"|findstr "_">nul && echo %%a ^<-- "%%i" 
03.
popd
Grüße
bastla
Bitte warten ..
Mitglied: ovu-p86
30.08.2011 um 23:50 Uhr
Hallo,

hier Bastlas CMD mit dem Werkzeug "BeCyPDFMetaEdit"

01.
set progr=lfw:\dein ProgrPfad\BeCyPDFMetaEdit 
02.
pushd "D:\Ordner mit den vielen PDF"  
03.
for /f "delims=" %%i in ('dir /b *_*_*.pdf') do for %%a in (%%~ni) do echo "%%a"|findstr "_">nul && echo %%a ^<-- "%%i" && "%progr%" "%%i" -T "%%a" -q 
04.
popd
getestet, funktioniert


@bastla
dein CMD funktioniert natürlich wieder perfekt.
Brauche Hilfe um zu verstehen was in deinem CMD abgeht. Insbesondere der Part "echo %%a ^<-- "%%i". Was ist das?
Danke

Gruß
Uwe
Bitte warten ..
Mitglied: bastla
31.08.2011 um 00:10 Uhr
Hallo ovu-p86!
"echo %%a ^<-- "%%i". Was ist das?
Reine Effekthascherei - damit wird nur eine Demo-Ausgabe der Art
3_29_0005 <-- "328644 3_29_0005 A.pdf"
erzeugt - ursprünglich wollte ich das umgekehrt ausgeben (also "328644 3_29_0005 A.pdf" --> 3_29_0005), aber da der zweite Teil immer gleich lang ist, schien mir die andere Reihenfolge übersichtlicher ...

Kurz zum Ablauf (anhand des angeführten Beispiels):
Die erste Schleife liefert alle passenden ("*_*_*.pdf") Dateinamen als %%i (also "328644 3_29_0005 A.pdf")
Vom Namen (%%~ni = "328644 3_29_0005 A") wird nur der Teil mit den "_" benötigt -
dazu wird anhand der enthaltenen Leerzeichen zerlegt (for /f geht nicht, weil die Anzahl der Tokens unterschiedlich sein kann) - als %%a kommen daher nacheinander
01.
328644 
02.
3_29_0005 
03.
A
an.
Mit findstr "_" wird für jedes %%a geprüft, ob der richtige Teil dran ist (die Ausgabe interessiert dabei gar nicht und wird nach nul geschickt).
Nur, wenn "_" gefunden wurde, wird der Teil nach && (steht für "Voriger Befehl lieferte Errorlevel 0") ausgeführt.

Grüße
baatla
Bitte warten ..
Mitglied: ovu-p86
31.08.2011 um 00:55 Uhr
Hallo Bastla,

danke für die verständliche Erklärung.

Hatte auch schon überlegt wie man das realisieren kann wenn mal nichts, mal vor, mal hinter, mal sowohl
vor wie auch hinter dem zu extrahierenden Wert steht. Eine bestechend einfache Lösung.

Danke


Gruß
Uwe
Bitte warten ..
Mitglied: Valume91
13.09.2011 um 11:18 Uhr
Hallo miteinander

Danke für die Zahlreichen Antworten.
Ich habs mit dem von ovu-p86 vorgeschlagenen Tool BeCyPDFMetaEdit und der entsprechenden
Schleife von Bastla gelöst.
Hat perfekt funktioniert! Danke! =)

mfg Valume
Bitte warten ..
Mitglied: moonman-25
20.08.2014, aktualisiert um 18:40 Uhr
Hallo Bastla,

könntest Du mir eventuell auch helfen?
Habe ein Verzeichnis mit mehreren Unterverzeichnissen, darin die PDF Dateien verteilt.
Script sollte alle Verzeichnisse durchsuchen, die Metadaten aus allen PDF Dateien entfernen und als Titel den Dateinamen übernehmen.
Habe schon einige Versuche hinter mir - ohne Erfolg
Benutze auch das BeCyPDFMetaEdit.
Bitte warten ..
Mitglied: bastla
21.08.2014 um 18:00 Uhr
Hallo moonman-25 und willkommen im Forum!

Wie Du für Deinen Zweck "BeCyPDFMetaEdit" aufrufen und welche Parameter Du ggf übergeben musst, solltest Du selbst herausfinden können (ich selbst verwende das Tool nicht) - um alle *.pdf-Dateien zu erhalten, solte aber folgende Schleife genügen:
for /f "delims=" %%i in ('dir /s/b/a-d "D:\Dein Verzeichnis\*.pdf') do echo Gefunden: "%%~nxi" in "%%~dpi" (gesamter Pfad: "%%~fi")
Anstelle der Demo-Ausgabe mit "echo" müsstest Du den "BeCyPDFMetaEdit"-Aufruf setzen ...

Grüße
bastla
Bitte warten ..
Mitglied: moonman-25
21.08.2014 um 18:18 Uhr
Also ich bin schon so weit, dass das Programm alle Dateien von den Metadaten säubert, inkl. aller Dateien in den Unterordnern. Statt aber den Titel aus dem Dateinamen zu übernehmen, steht dann da bei mir immer $FileTitle$ als Titel.

Mein Script seht folgendermaßen aus:

C:\Users\Pfad\BeCyPDFMetaEdit.exe "C:\Users\Pfad\BeCyPDFMetaEdit-2.37.0-de\*.pdf" -s -S -A -K -R -P -C -M -X 1 -T $FileTitle$ -d 2

Mit deiner Schleife oben kann ich überhaupt nichts anfangen. Trotzdem Danke
Wenn Du noch einen Tipp hast, wäre ich Dir sehr dankbar.
Bitte warten ..
Mitglied: moonman-25
22.08.2014 um 08:39 Uhr
Sonst jemand eine Idee für mich?
Bitte warten ..
Mitglied: moonman-25
22.08.2014 um 14:07 Uhr
So, ich hab's

Falls es noch jemand brauchen sollte:

for /R %%I in (*.pdf) do lw:\pfad\BeCyPDFMetaEdit.exe "%%I" -T "%%~nI" -S -A -K -R -P -C -M -X 1 -d 2

Die PDF Dateien müssen sich in demselben Ordner befinden, wo es ausgeführt wird, können auch in verschiedenen Unterordnern darin liegen.
Bitte warten ..
Mitglied: bastla
22.08.2014 um 16:32 Uhr
Hallo moonman-25!
Die PDF Dateien müssen sich in demselben Ordner befinden, wo es ausgeführt wird
Das lässt sich ändern, indem entweder die Schleife aus meinem Ansatz von oben verwendet oder Deine Version auf
for /R "D:\Dein Verzeichnis" %%I in (*.pdf) do lw:\pfad\BeCyPDFMetaEdit.exe "%%I" -T "%%~nI" -S -A -K -R -P -C -M -X 1 -d 2
ergänzt wird ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Neuere Datei per Batch ausfinding machen (2)

Frage von chattie zum Thema Batch & Shell ...

XML
gelöst XML Datei per Skript ändern (12)

Frage von chrisen zum Thema XML ...

Batch & Shell
gelöst Datum per batch ändern in Tagen (2)

Frage von crawnby zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...