Datei Eigenschaften per Batch ändern
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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 172283
Url: https://administrator.de/forum/datei-eigenschaften-per-batch-aendern-172283.html
Ausgedruckt am: 23.12.2024 um 11:12 Uhr
27 Kommentare
Neuester Kommentar
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...
Wie du von kommst - das verstehe ich nicht wirklich.....
Gruß
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)
*__** (Bsp. 3_29_0005)
Wie du von
3_29_0005 auf *__**
Gruß
Zitat von @60730:
Wie du von
kommst - das verstehe ich nicht wirklich.....
Wie du von
3_29_0005 auf *__**
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é
gelöscht. Irgendwie war da im letzten Beitrag des TE der Wurm drin.
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.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.
Vielleicht mit dem Programm, das dir TimoBeil genannt hat. Mit Batch jedenfalls nicht.
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
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
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.
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é
Servus,
ok - wenn es "so" ist...
Du brauchst:
*`ein Script, dass ~ sowas macht:
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ß
ok - wenn es "so" ist...
Du brauchst:
*`ein Script, dass ~ sowas macht:
If WScript.Arguments.Count <> 2 Then
msgbox "Aufruf so nicht richtig"
Else
Dim Obj, File, Info
Set Obj = WScript.Arguments
File = Obj(0)
Info = Obj(1)
Set objFile = CreateObject("DSOFile.OleDocumentProperties")
objFile.Open(File)
objFile.SummaryProperties.Title = Info
objFile.Save
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ß
@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
Danke für das DSO-Beispiel - [Edit]
Als Ergänzung zu Deinem Link oben: Abfragen und Aktualisieren der Meta-Informationen einer PDF-Datei
Grüße
bastla
Servus Bastla
Grüße
- 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
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.
Keine? Auch nicht AutoIt?
Mit Rechtsklick auf die Datei > Eigenschaften > Dateiinfo
lassen sich auch alle Einträge bearbeiten.
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
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
Hallo, rubberman,
Du denkst doch sonst auch immer um 26 Ecken, um etwas fertigzustellen?
Gruß
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ß
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
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
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:
Grüße
bastla
Um das Ganze vielleicht einem Ende näher zu bringen: Unabhängig vom letztlich verwendeten Werkzeug könnte die Schleife drumherum etwa so aussehen:
pushd "D:\Ordner mit den vielen PDF"
for /f "delims=" %%i in ('dir /b *_*_*.pdf') do for %%a in (%%~ni) do echo "%%a"|findstr "_">nul && echo %%a ^<-- "%%i"
popd
bastla
Hallo,
hier Bastlas CMD mit dem Werkzeug "BeCyPDFMetaEdit"
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
hier Bastlas CMD mit dem Werkzeug "BeCyPDFMetaEdit"
set progr=lfw:\dein ProgrPfad\BeCyPDFMetaEdit
pushd "D:\Ordner mit den vielen PDF"
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
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
Hallo ovu-p86!
erzeugt - ursprünglich wollte ich das umgekehrt ausgeben (also
Kurz zum Ablauf (anhand des angeführten Beispiels):
Die erste Schleife liefert alle passenden ("*_*_*.pdf") Dateinamen als
Vom Namen (
dazu wird anhand der enthaltenen Leerzeichen zerlegt (
an.
Mit
Nur, wenn "_" gefunden wurde, wird der Teil nach
Grüße
baatla
"echo %%a ^<-- "%%i". Was ist das?
Reine Effekthascherei - damit wird nur eine Demo-Ausgabe der Art3_29_0005 <-- "328644 3_29_0005 A.pdf"
"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 nacheinander328644
3_29_0005
A
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
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.
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.
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:
Anstelle der Demo-Ausgabe mit "
Grüße
bastla
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")
echo
" müsstest Du den "BeCyPDFMetaEdit"-Aufruf setzen ...Grüße
bastla
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.
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.
Hallo moonman-25!
ergänzt wird ...
Grüße
bastla
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 auffor /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
Grüße
bastla