miss-gis
Goto Top

Batchdatei zum Verschieben von Datei nach Kriterium Zeichen von-bis in Dateiname

Hallo Leute,

mir ist bekannt, dass es viele viele Beiträge zum Thema Datei verschieben mittels Batch gibt. Ich stehe aber vor einem Syntaxproblem und finde hier bisher keine Antwort.

Wie kann ich den movebefehl formulieren, dass er mir die Datei nach den 4-6 Zeichen auswertet. Mit * komm ich hier nicht weiter, weil ich hier Zahlen im Dateinamen habe, die sich wiederholen können.

Zum Verständnis ein Beispiel (Auswertung Zeichen 4-6):
Datei ARF010_cd0125010 soll nach Ordner d:\daten\010
Datei CAM011_ab0110562 soll nach Ordner d:\daten\011

etc.

Kann mir jemand weiter helfen?
Danke

miss_gis

Content-Key: 35536

Url: https://administrator.de/contentid/35536

Printed on: April 16, 2024 at 12:04 o'clock

Member: Biber
Biber Jul 06, 2006 at 17:15:35 (UTC)
Goto Top
Moin miss_gis,

unter der Voraussetung, dass
a) die Dateimaske der Quelldateien "??????_*." ist ...
[ also genau 6 Zeichen bis zum "_", dann irgendwas und Keine Dateiendung
b) Die DelayedExpansion standardmäßug aktiviert ist (so wie bei mir),
dann vom CMD-Prompt aus:
>for %i in (??????_*.) do @Set "x=%i" && @ECHO [Output] move %i d:\daten\!x:~3,3!\*.*  
[Output] move ARF010_cd0125010 d:\daten\010\*.*
[Output] move CAM011_ab0110562 d:\daten\011\*.*

Als Mini-Bätschelchen:
::-----------snipp Move2DatenDirs.bat
@echo off & setlocal EnableDelayedExpansion
for %%i in (??????_*.) do Set "x=%%i" && ECHO [Output] move %%i d:\daten\!x:~3,3!\*.*  

In beiden Fällen ist das "ECHO [Output]" natürlich nur zu Debugzwecken und muss zum Scharfmachen gelöscht werden.

Gruß
Biber
Member: miss-gis
miss-gis Jul 07, 2006 at 07:20:46 (UTC)
Goto Top
Hallo Biber,

hat ein bissi gedauert, aber jetzt klappts. Allerdings haben meine Dateien noch eine Extension. Aber auch das habe ich hin bekommen. Aber nur mit dem 2. Vorschlag von dir. Und ich musste zum Schluß bei der Pfadangabe *.* weg lassen.
Aber SupiLösung in 3 Zeilen. Bei mir wäre das Ding mind 30 Zeilen lang geworden, weil wir 30 verschiedene Kennzahlen haben.
Perfekt. Danke für die Hilfe.

Gruß miss_gis
Member: miss-gis
miss-gis Jul 07, 2006 at 07:56:39 (UTC)
Goto Top
Hallo Biber,

ich brauch dich doch noch mal. Die netten Kollegen wollen aber noch einen Schritt weiter mit dem Batchfile. Und zwar soll die Datenstruktur so aussehen:
d:\daten\01\011....
Das ist für mich auch kein Problem, hab ja meine Variable belegt, und die lass ich doppelt über die Verzeichnisse auswerten. Aber jetzt kommt noch erschwerend hinzu, dass Sie zum Verzeichnis 01 noch 01_Muenchen\011_Bogenhausen als Eigenname mit aufnehmen wollen. Kriterium ist nach wie vor die 01 und 011 allerdings der Verzeichnisname wurde ergänzt. Mit der Ergänzung in der Syntax um ein einfaches * klappt leider nicht.

Beispiel für meine Idee:
for %%i in (?_?????*.pdf) do Set "x=%%i" && move %%i d:\daten\!x:~4,2!_*\!x:~4,3!_*\

Kannst mir nochmal weiter helfen?

Gruß Miss_Gis
Member: Biber
Biber Jul 07, 2006 at 10:39:45 (UTC)
Goto Top
Moin miss_gis,

wir hatten mal ähnliche Spinner Anforderungen wie Deine Kollegen hier Variablen und Wildcards

Da wird es kaum bei einem Einzeiler bleiben...

Werde da trotzdem mal basteln, aber wahrscheinlich nicht mehr heute.
Fangt aber ruhig schon ohne mich an face-wink

Gruß an die Kollegen..

Biber
Member: miss-gis
miss-gis Jul 11, 2006 at 08:59:53 (UTC)
Goto Top
Hallo Biber,
dein Link entspricht eigentlich genau dem, was wir auch haben. Allerdings garantieren wir bestehenden Verzeichnisse. Aber ich komm trotzdem nicht klar, wenn der Verzeichnisname (Nummer_Name) aussehen soll. Kannst nochmal zur Seite stehen?

Gruß miss_gis