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
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
5 Antworten
- LÖSUNG Biber schreibt am 06.07.2006 um 19:15:35 Uhr
- LÖSUNG miss-gis schreibt am 07.07.2006 um 09:20:46 Uhr
- LÖSUNG miss-gis schreibt am 07.07.2006 um 09:56:39 Uhr
- LÖSUNG Biber schreibt am 07.07.2006 um 12:39:45 Uhr
- LÖSUNG miss-gis schreibt am 11.07.2006 um 10:59:53 Uhr
- LÖSUNG Biber schreibt am 07.07.2006 um 12:39:45 Uhr
LÖSUNG 06.07.2006 um 19:15 Uhr
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:
Als Mini-Bätschelchen:
In beiden Fällen ist das "ECHO [Output]" natürlich nur zu Debugzwecken und muss zum Scharfmachen gelöscht werden.
Gruß
Biber
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
LÖSUNG 07.07.2006 um 09:20 Uhr
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
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
LÖSUNG 07.07.2006 um 09:56 Uhr
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
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
LÖSUNG 07.07.2006 um 12:39 Uhr
Moin miss_gis,
wir hatten mal ähnlicheSpinner 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
Gruß an die Kollegen..
Biber
wir hatten mal ähnliche
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
Gruß an die Kollegen..
Biber
LÖSUNG 11.07.2006 um 10:59 Uhr
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
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