koluschkib
Goto Top

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

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

Content-Key: 119374

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

Printed on: April 25, 2024 at 01:04 o'clock

Member: miniversum
miniversum Jun 30, 2009 at 14:09:08 (UTC)
Goto Top
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:
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