Batchdatei zum Auslesen eines Pfadnames
Hallo ich habe ien Problem. Ich ahbe viele PDF, die in verschiedne Ordner sollen. Im Namen der Datei steht an den ersten schs Stellen der Pfadname, wo die Datei hinsoll.
Hallo,
ich habe eine PDF-Datei mit folgender Namensstruktur: 078935141412010803.pdf.
die ersten sechs Ziffern sollen ausgelesen werden und dann soll die Datei in den Pfad mit derKennung 78935, also ohne führende Null, die sich im Ordner C:\\\\speicher\\\\ befindet verschoben werden.
Kann mir jemand helfen?
Vielen Dank
Hallo,
ich habe eine PDF-Datei mit folgender Namensstruktur: 078935141412010803.pdf.
die ersten sechs Ziffern sollen ausgelesen werden und dann soll die Datei in den Pfad mit derKennung 78935, also ohne führende Null, die sich im Ordner C:\\\\speicher\\\\ befindet verschoben werden.
Kann mir jemand helfen?
Vielen Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 04.08.2010 um 20:42:04 Uhr
Originaltitel "Batchdatei zum Auslesen eines Pfanames" mit einem "d" wie in "Bradkardoffel" angereichert.
Content-ID: 148255
Url: https://administrator.de/forum/batchdatei-zum-auslesen-eines-pfadnames-148255.html
Ausgedruckt am: 16.04.2025 um 02:04 Uhr
13 Kommentare
Neuester Kommentar
Moin Odermark,
Aber manchmal habe ich einfach keine Wahl
Die PDFs haben
Die Zielordner existieren? Müssen neu angelegt werden?
[Und optionale Frage, rein aus persönlichem Interesse:
WTF kommt jemand auf die Idee, diese PDF-Berge zu strukturieren erst nachdem sich Tausende angesammelt haben???
Haben die sich denn so sehr überraschend vermehrt jetzt seit der Mai ausgeschlagen hat?]
Grüße
Biber
Kann mir jemand helfen?
Ich mag es eigentlich selbst gar nicht, wenn Fragen immer mit Gegenfragen beantwortet werden müssen.Aber manchmal habe ich einfach keine Wahl
- Du hast "viele viele bunte PDFs" in EINEM Ordner, in einer Verzeichnisstruktur, verteilt auf drei Wechselplatten??
Ich habe eine PDF-Datei mit folgender Namensstruktur: 078935141412010803.pdf.
... meine Kidz bekämen für so einen Satz im Pflichtenheft 2 Tage Disko-Verbot.Die PDFs haben
- alle einen 18stelligen Namen ausschliesslich aus Ziffern bestehend?
- haben alle eine führende Ziffer "0"?
- wenn nein: ergeben sich für die PDFs mit ohne führende "0" dann 6stellige Ordnernamen?
- noch wenn nein: ergeben sich für die PDFs mit zwei führenden "0" dann 4stellige Ordnernamen?
Die Zielordner existieren? Müssen neu angelegt werden?
[Und optionale Frage, rein aus persönlichem Interesse:
WTF kommt jemand auf die Idee, diese PDF-Berge zu strukturieren erst nachdem sich Tausende angesammelt haben???
Haben die sich denn so sehr überraschend vermehrt jetzt seit der Mai ausgeschlagen hat?]
Grüße
Biber
Moin Odermark,
danke dir für die Antworten... so wird es ein bisschen einfacher als mit zu vielen Variablen.
Für heute wollte ich erst mal Schicht machen... aber wenigstens "Danke" sagen.
Wenn die Ordner existieren (was ich gehofft habe), dann lässt sich ja auch statt der Strategie
...wie gesagt stattdessen lässt es sich so angehen
Aber, wie geschrieben, morgen.... falls es dann noch offen ist.
Grüße
Biber
danke dir für die Antworten... so wird es ein bisschen einfacher als mit zu vielen Variablen.
Für heute wollte ich erst mal Schicht machen... aber wenigstens "Danke" sagen.
Wenn die Ordner existieren (was ich gehofft habe), dann lässt sich ja auch statt der Strategie
- Wackele über alle 10000 Dateien, fass jeden gatesverdammten Dateinamen an, mach ein Substring-Geraffel zur Bildung des Ordnernamens, leg den Ordner an UND DANN ENDLICH FANG AN mit MOVEn...
...wie gesagt stattdessen lässt es sich so angehen
- Über alle vorhandenen Ordner wackeln (sind weniger als 10000) und dann alle Dateien mit der Wildcard-Konvention "ordnername*.pdf" bzw "0ordnername*.pdf" jeweils ein ganzer Schwung verschieben..
Aber, wie geschrieben, morgen.... falls es dann noch offen ist.
Grüße
Biber

Hallo Odermark,
das sollte es eigentlich tun
Wenn die Ausgabe auf dem Bildschirm korrekt ersceint das echo in der letzten Zeile entfernen.
Wenn Fragen zu den genutzten Befehlen bestehen, raus damit.
Gruß
LotPings
Edit: übersehenes Base in Basis geändert.
fehlende Tilde in Zeile 9 ergänzt
Überflüssige %Basis% Referenzen entfernt
das sollte es eigentlich tun
@Echo off
SetLocal
Set "Basis=k:\Scan"
Pushd "%Basis%"
for %%A in (*.pdf) do Set "File=%%~nA" & Call :ProcessFile "%%~fA"
Popd
Goto :Eof
:ProcessFile
Set /A "Ordner=1%File:~0,6% - 1000000"
If Not Exist "%Ordner%" Echo Ordner %Ordner% nicht vorhanden & goto :Eof
Echo Move %1 "%Ordner%\"
Wenn Fragen zu den genutzten Befehlen bestehen, raus damit.
Gruß
LotPings
Edit: übersehenes Base in Basis geändert.
fehlende Tilde in Zeile 9 ergänzt
Überflüssige %Basis% Referenzen entfernt
Moin pieh-ejdsch,
du antwortest Odermark mit
...auf seine Frage...
Darf ich mir diesen Dialog abheften für schlechte Zeiten?
@Odermark.
Okay, dann machen mir erstmal mit dem Plan B weiter... mit der Strategie, die ich dir eigentlich ersparen wollte.
[Viele Neu-Bätchlinge fangen oft haltlos an zu Lachen, wenn sie das erste Mal eine Batch-Substring-Ermittlung überreicht bekommen...]
Bitte als Erstes.
Und dann machen wir weiter.
Grüße
Biber
du antwortest Odermark mit
...auf seine Frage...
Zitat von @Odermark:
Leider kann ich das Ergebnis nicht sehen, weil ich den Befehl nicht weiss, wie ich das
Ergebnis auf dem Bildschimr einfrieren kann.
Leider kann ich das Ergebnis nicht sehen, weil ich den Befehl nicht weiss, wie ich das
Ergebnis auf dem Bildschimr einfrieren kann.
Darf ich mir diesen Dialog abheften für schlechte Zeiten?
@Odermark.
Okay, dann machen mir erstmal mit dem Plan B weiter... mit der Strategie, die ich dir eigentlich ersparen wollte.
[Viele Neu-Bätchlinge fangen oft haltlos an zu Lachen, wenn sie das erste Mal eine Batch-Substring-Ermittlung überreicht bekommen...]
Bitte als Erstes.
- Öffne dir einen CMD-Prompt [Windows-Taste +"R" --> Eingabe "cmd" -->ENTER.
- Starte den Batch durch Aufruf von "c:\schnipsel\meinErsterBatch" oder wie er genannt ist.
Und dann machen wir weiter.
Grüße
Biber
Moin pieh-ejdsch,
*lach*
okay, okay, natürlich müssen wir oder Mark..äh...Odermark irgendwann mal diesen Tippfehler %Basis% statt %Base% rauspuhlen.
Es ging nur um die Reihenfolge.
Mit meiner stockkonservativen Methode würde er den Grund auf dem Bildschirm lesen können.
Mit der anderen (der Doppelklick-vom-Desktop-) Methode muss er immer erst ins Internet und auf Hinweise aus ganz Mitteleuropa hoffen.
Grüße
Biber
*lach*
okay, okay, natürlich müssen wir oder Mark..äh...Odermark irgendwann mal diesen Tippfehler %Basis% statt %Base% rauspuhlen.
Es ging nur um die Reihenfolge.
Mit meiner stockkonservativen Methode würde er den Grund auf dem Bildschirm lesen können.
Mit der anderen (der Doppelklick-vom-Desktop-) Methode muss er immer erst ins Internet und auf Hinweise aus ganz Mitteleuropa hoffen.
Grüße
Biber

Zitat von @Odermark:
Hallo,
Danke! Es erscheint folgende fehlermeldung:
Ungültige Zahl. Nummerische Konstanten sind entweder dezimale (1/7), hexadezimale (0*11) oder oktale (021) Zahlen.
Sorry in der Zeile 9 fehlte noch eine Tilde, ändere ich oben ab - dann sollte es gehen.Hallo,
Danke! Es erscheint folgende fehlermeldung:
Ungültige Zahl. Nummerische Konstanten sind entweder dezimale (1/7), hexadezimale (0*11) oder oktale (021) Zahlen.
Gruß
LotPings
Moin Odermark,
nur als Nachtrag, weil mein gestern skizzierter Plan A ja noch nicht ausformuliert wurde.
Ich wollte ja möglichst ohne so eine Substring-Arie ausjommen, was auch geht wenn die Ordner schon existieren.
Liefe dann auf zwei bis drei Zeilen am CMD-Prompt raus in dem Szenario mit "K:\Scan\*viele*.pdf" und "K:\Scan\nnnnnn\"-Ordner:
Aber auch bei diesen Onelinern hätte das Erklären genauso lange gedauert...
[Obwohl... wenn ich EINE Zeile draus gemacht hätte, dann noch länger...]
Grüße
Biber
P.S.
Warum denn LotPings' Schnipsel bei deinem-"K:\Scan"-Szenario so in die Grütze fasst
nur als Nachtrag, weil mein gestern skizzierter Plan A ja noch nicht ausformuliert wurde.
Ich wollte ja möglichst ohne so eine Substring-Arie ausjommen, was auch geht wenn die Ordner schon existieren.
Liefe dann auf zwei bis drei Zeilen am CMD-Prompt raus in dem Szenario mit "K:\Scan\*viele*.pdf" und "K:\Scan\nnnnnn\"-Ordner:
mode con cols=155 lines=44
for %q in ("k:\Scan") do @for /d %i in (%~q\*) do @if exist "%~q\%~ni*.pdf" @move "%~q\%~ni*.*" "%i\"
for %q in ("k:\Scan") do @for /d %i in (%~q\*) do @if exist "%~q\0%~ni*.pdf" @move "%~q\0%~ni*.*" "%i\"
Aber auch bei diesen Onelinern hätte das Erklären genauso lange gedauert...
[Obwohl... wenn ich EINE Zeile draus gemacht hätte, dann noch länger...]
Grüße
Biber
P.S.
Warum denn LotPings' Schnipsel bei deinem-"K:\Scan"-Szenario so in die Grütze fasst
Move "..." Als Ergebnis gibt er "D:\OCR2\\"...
--> dieses Rätsel lassen wir mal auf sich beruhen...