verschieben von daten nach buchstabe in verschiede ordner
morgen Admin freunde
sitz mal wieder vor einer offenen frage und komme nicht richtig weiter
nun zu meinem problem,
ich möchte gerne einen ordner inhalt Verschieben und dann zb nach Buchstabe Sortieren.
und wazr wie folgt stelle ich es mir vor, in einem ordner C:\XYZ sind verschieden daten hinterlegt. nun möchte ich per batch skript denn ordner einlesen und die darin befindenen daten auf verschiede ordner verschieben, mit 3 möglichkeiten
1. Nach Größe
2. Datum
3. Name
zu 1. es wird ein ordner für daten bis 1MB, 1 Ordner für daten zwischen 1-5MB und ein 1. Ordner ab 5MB angelegt, nun sollen die daten aus dem ordner C:\XYZ auf die jeweiligen Ordner verschoben werden
zu 2. es wird ein ordner für daten nicht älter als 1 Woche, 1 Ordner für daten zwischen 1. Woche bis 1. Monat und ein 1. Ordner 1 Monat oder älter angelegt, nun sollen die daten aus dem ordner C:\XYZ auf die jeweiligen Ordner verschoben werden
zu 3. es wird ein ordner für daten A-I, 1 Ordner für daten zwischen J-R und ein 1. Ordner S-Z angelegt, nun sollen die daten aus dem ordner C:\XYZ auf die jeweiligen Ordner verschoben werden
ich hab schon folgendes gebastelt, mir fehlt nur noch der richtige ansatz was das verschieben angeht
es sollten auch Unterordner in dem angegebenen ordner berücksichtigt werden
ich hoffe ihr könnt mir weiter helfen
gruß
koluschkiB
sitz mal wieder vor einer offenen frage und komme nicht richtig weiter
nun zu meinem problem,
ich möchte gerne einen ordner inhalt Verschieben und dann zb nach Buchstabe Sortieren.
und wazr wie folgt stelle ich es mir vor, in einem ordner C:\XYZ sind verschieden daten hinterlegt. nun möchte ich per batch skript denn ordner einlesen und die darin befindenen daten auf verschiede ordner verschieben, mit 3 möglichkeiten
1. Nach Größe
2. Datum
3. Name
zu 1. es wird ein ordner für daten bis 1MB, 1 Ordner für daten zwischen 1-5MB und ein 1. Ordner ab 5MB angelegt, nun sollen die daten aus dem ordner C:\XYZ auf die jeweiligen Ordner verschoben werden
zu 2. es wird ein ordner für daten nicht älter als 1 Woche, 1 Ordner für daten zwischen 1. Woche bis 1. Monat und ein 1. Ordner 1 Monat oder älter angelegt, nun sollen die daten aus dem ordner C:\XYZ auf die jeweiligen Ordner verschoben werden
zu 3. es wird ein ordner für daten A-I, 1 Ordner für daten zwischen J-R und ein 1. Ordner S-Z angelegt, nun sollen die daten aus dem ordner C:\XYZ auf die jeweiligen Ordner verschoben werden
ich hab schon folgendes gebastelt, mir fehlt nur noch der richtige ansatz was das verschieben angeht
es sollten auch Unterordner in dem angegebenen ordner berücksichtigt werden
echo --Waehlen Sie den Pfad, der Sortiert werden soll!--
echo.
echo Bsp. C:\Test\xyz
:path
echo.
set /p path=
echo.
echo --Waehlen sie ihre Sortierungsart!--
echo.
echo Groesse [g/G]; Name [n/N]; Datum [d/D]
set /p v=
if /i "%v%"=="g" goto Groesse
if /i "%v%"=="n" goto Name
if /i "%v%"=="d" goto Datum
:Groesse
mkdir C:\Groesse_1MB
mkdir c:\Groesse_1MB-5MB
mkdir c:\Groesse_5MB
:Name
mkdir c:\Name_A-I
mkdir c:\name_J-R
mkdir c:\name_S-Z
:Datum
mkdir c:\Datum_bis 1Woche
mkdir c:\Datum_bis 1Monat
mkdir C:\datum_ab 1Monat
pause
ich hoffe ihr könnt mir weiter helfen
gruß
koluschkiB
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 119374
Url: https://administrator.de/forum/verschieben-von-daten-nach-buchstabe-in-verschiede-ordner-119374.html
Ausgedruckt am: 20.12.2024 um 07:12 Uhr
1 Kommentar
Zunächstmal: path ist ein ganz schlecht gewählter name für die Variable, weil es schon eine Umgebungsvariable mit diesem Namen gibt, die auch nicht ganz unwichtig für die Abarbeitung einiger Befehle ist.
Deshalb nennen ich da hier mal einfach pfad.
Sortieren nach Namen geht z.b. so:
Deshalb nennen ich da hier mal einfach pfad.
Sortieren nach Namen geht z.b. so:
FOR /F "delims=" %%i in ('dir /b "%pfad%\*.*) do call:copyasname "%%~fi"
goto:eof
:copyasname
set "name=%~1"
set buchstabe=%name:~0,1%
set verz="c:\name_Ohne_Buchstabe"
FOR %%b IN (a b c d e f g h i) DO if /i "%buchstabe%"=="%%b" set verz="c:\Name_A-I"
FOR %%b IN (j k l m n o p q r) DO if /i "%buchstabe%"=="%%b" set verz="c:\name_J-R"
FOR %%b IN (s t u v w x y z) DO if /i "%buchstabe%"=="%%b" set verz="c:\name_S-Z"
mkdir "%verz%"
move "%name%" "%verz%"
goto:eof