ryan_blackdrago
Captain
- Registriert
- Nov. 2006
- Beiträge
- 4.014
So sollte es alles erfüllen:
-die VBS wird mit dem aktuellen Tag ausgeführt und erstellt somit nur einen Tages-Ordner
-Daten wie die Namen der beiden Ordner, Namen der Wochentage, Namen der Monate usw. können ganz oben eingetragen werden.
-der Monat MÄRZ sollte sich nun korrekt erstellen lassen
-Bereits erstellte Ordner bleiben unberührt
-Da ja das Skript an Samstag und Sonntag keinen Ordner bereitstellt, kann zu Testzwecken das Datum überschrieben werden. Hierzu das Wort REM entfernen:
//EDIT : Da fällt mir ein: Wenn das Skript täglich abläuft, so wird der ganze Passus mit dem VBS gar nicht mehr benötigt. Daher können ein paar Zeilen eingespart werden:
Code:
@echo off & setlocal EnableDelayedExpansion
REM Codepage für MÄRZ ändern
chcp 65001
REM aktuellen Tag, Monat, Jahr ermitteln
set TAG=%date:~0,2%
set MONAT=%date:~3,2%
set JAHR=%date:~6%
REM zu Testzwecken : Datum manuell vorgeben => wegen automatischer Ordnerlöschung am Samstag, Sonntag
REM set TAG=21
REM set MONAT=09
REM set JAHR=2021
REM Ordnernamen vorgeben
SET FOLDER1=Ordner1
SET FOLDER2=Ordner 2
REM Monatsnamen vorgeben
SET MONAT1=01 JANUAR
SET MONAT2=02 FEBRUAR
SET MONAT3=03 MÄRZ
SET MONAT4=04 APRIL
SET MONAT5=05 MAI
SET MONAT6=06 JUNI
SET MONAT7=07 JULI
SET MONAT8=08 AUGUST
SET MONAT9=09 SEPTEMBER
SET MONAT10=10 OKTOBER
SET MONAT11=11 NOVEMBER
SET MONAT12=12 DEZEMBER
REM Name der Wochentage vorgeben
SET TAG1=Montag
SET TAG2=Dienstag
SET TAG3=Mittwoch
SET TAG4=Donnerstag
SET TAG5=Freitag
SET TAG6=Samstag
SET TAG7=Sonntag
REM XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
set Jahr=%JAHR%
set G=%temp%\GetDates.vbs
>%G% echo J=WScript.Arguments(0):For i=DateSerial(J,%MONAT%,%TAG%) To DateSerial(J,%MONAT%,%TAG%):WScript.Echo(FormatDateTime(i)):Next
for /f "tokens=1-3 delims=." %%a in ('cscript //nologo %G% %Jahr%') do (
REM mit Powershell Wochentag zu Datum herausfinden
for /f %%j in ('powershell ^(get-date %%a.%%b.%%c^).DayOfWeek') do (
set dow=%%j
REM englische Schreibweise mit deutschen Wochentagen ersetzen
if %%j == Monday md "%%a.%%b.%%c %TAG1%"
if %%j == Tuesday md "%%a.%%b.%%c %TAG2%"
if %%j == Wednesday md "%%a.%%b.%%c %TAG3%"
if %%j == Thursday md "%%a.%%b.%%c %TAG4%"
if %%j == Friday md "%%a.%%b.%%c %TAG5%"
if %%j == Saturday md "%%a.%%b.%%c %TAG6%"
if %%j == Sunday md "%%a.%%b.%%c %TAG7%"
)
)
REM XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
REM Samstag, Sonntag löschen
REM Samstag löschen
for /f "delims=" %%D in ('dir /a:d /b *%TAG6%') do (
rd /S /Q "%%D"
)
REM Sonntag löschen
for /f "delims=" %%D in ('dir /a:d /b *%TAG7%') do (
rd /S /Q "%%D"
)
REM XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
REM Name1 und Name2 als Unterordner
for /f "delims=" %%D in ('dir /a:d /b') do (
cd %%D
md "%FOLDER1%"
md "%FOLDER2%"
cd..
)
REM XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
REM Monatsordner erstellen und verschieben
REM Monatsordner erstellen
MKDIR "%MONAT1%"
MKDIR "%MONAT2%"
MKDIR "%MONAT3%"
MKDIR "%MONAT4%"
MKDIR "%MONAT5%"
MKDIR "%MONAT6%"
MKDIR "%MONAT7%"
MKDIR "%MONAT8%"
MKDIR "%MONAT9%"
MKDIR "%MONAT10%"
MKDIR "%MONAT11%"
MKDIR "%MONAT12%"
REM Januar
for /f "delims=" %%D in ('dir /a:d /b *.01.*') do (
move /Y "%%D" "%MONAT1%"
)
REM Februar
for /f "delims=" %%D in ('dir /a:d /b *.02.*') do (
move /Y "%%D" "%MONAT2%"
)
REM März
for /f "delims=" %%D in ('dir /a:d /b *.03.*') do (
move /Y "%%D" "%MONAT3%"
)
REM April
for /f "delims=" %%D in ('dir /a:d /b *.04.*') do (
move /Y "%%D" "%MONAT4%"
)
REM Mai
for /f "delims=" %%D in ('dir /a:d /b *.05.*') do (
move /Y "%%D" "%MONAT5%"
)
REM Juni
for /f "delims=" %%D in ('dir /a:d /b *.06.*') do (
move /Y "%%D" "%MONAT6%"
)
REM Juli
for /f "delims=" %%D in ('dir /a:d /b *.07.*') do (
move /Y "%%D" "%MONAT7%"
)
REM August
for /f "delims=" %%D in ('dir /a:d /b *.08.*') do (
move /Y "%%D" "%MONAT8%"
)
REM September
for /f "delims=" %%D in ('dir /a:d /b *.09.*') do (
move /Y "%%D" "%MONAT9%"
)
REM Oktober
for /f "delims=" %%D in ('dir /a:d /b *.10.*') do (
move /Y "%%D" "%MONAT10%"
)
REM November
for /f "delims=" %%D in ('dir /a:d /b *.11.*') do (
move /Y "%%D" "%MONAT11%"
)
REM Dezember
for /f "delims=" %%D in ('dir /a:d /b *.12.*') do (
move /Y "%%D" "%MONAT12%"
)
REM XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
REM GetDates.vbs aus TEMP-Ordner löschen
del /F /Q %temp%\GetDates.vbs
REM Überflüssige Ordner entfernen
rd /S /Q "%MONAT1%\%FOLDER1%"
rd /S /Q "%MONAT1%\%FOLDER2%"
rd /S /Q "%MONAT2%\%FOLDER1%"
rd /S /Q "%MONAT2%\%FOLDER2%"
rd /S /Q "%MONAT3%\%FOLDER1%"
rd /S /Q "%MONAT3%\%FOLDER2%"
rd /S /Q "%MONAT4%\%FOLDER1%"
rd /S /Q "%MONAT4%\%FOLDER2%"
rd /S /Q "%MONAT5%\%FOLDER1%"
rd /S /Q "%MONAT5%\%FOLDER2%"
rd /S /Q "%MONAT6%\%FOLDER1%"
rd /S /Q "%MONAT6%\%FOLDER2%"
rd /S /Q "%MONAT7%\%FOLDER1%"
rd /S /Q "%MONAT7%\%FOLDER2%"
rd /S /Q "%MONAT8%\%FOLDER1%"
rd /S /Q "%MONAT8%\%FOLDER2%"
rd /S /Q "%MONAT9%\%FOLDER1%"
rd /S /Q "%MONAT9%\%FOLDER2%"
rd /S /Q "%MONAT10%\%FOLDER1%"
rd /S /Q "%MONAT10%\%FOLDER2%"
rd /S /Q "%MONAT11%\%FOLDER1%"
rd /S /Q "%MONAT11%\%FOLDER2%"
rd /S /Q "%MONAT12%\%FOLDER1%"
rd /S /Q "%MONAT12%\%FOLDER2%"
-die VBS wird mit dem aktuellen Tag ausgeführt und erstellt somit nur einen Tages-Ordner
-Daten wie die Namen der beiden Ordner, Namen der Wochentage, Namen der Monate usw. können ganz oben eingetragen werden.
-der Monat MÄRZ sollte sich nun korrekt erstellen lassen
-Bereits erstellte Ordner bleiben unberührt
-Da ja das Skript an Samstag und Sonntag keinen Ordner bereitstellt, kann zu Testzwecken das Datum überschrieben werden. Hierzu das Wort REM entfernen:
Code:
REM set TAG=21
REM set MONAT=09
REM set JAHR=2021
Code:
set TAG=21
set MONAT=09
set JAHR=2021
//EDIT : Da fällt mir ein: Wenn das Skript täglich abläuft, so wird der ganze Passus mit dem VBS gar nicht mehr benötigt. Daher können ein paar Zeilen eingespart werden:
Code:
@echo off & setlocal EnableDelayedExpansion
REM Codepage für MÄRZ ändern
chcp 65001
REM aktuellen Tag, Monat, Jahr ermitteln
set TAG=%date:~0,2%
set MONAT=%date:~3,2%
set JAHR=%date:~6%
REM zu Testzwecken : Datum manuell vorgeben => wegen automatischer Ordnerlöschung am Samstag, Sonntag
REM set TAG=21
REM set MONAT=09
REM set JAHR=2021
REM Ordnernamen vorgeben
SET FOLDER1=Ordner1
SET FOLDER2=Ordner 2
REM Monatsnamen vorgeben
SET MONAT1=01 JANUAR
SET MONAT2=02 FEBRUAR
SET MONAT3=03 MÄRZ
SET MONAT4=04 APRIL
SET MONAT5=05 MAI
SET MONAT6=06 JUNI
SET MONAT7=07 JULI
SET MONAT8=08 AUGUST
SET MONAT9=09 SEPTEMBER
SET MONAT10=10 OKTOBER
SET MONAT11=11 NOVEMBER
SET MONAT12=12 DEZEMBER
REM Name der Wochentage vorgeben
SET TAG1=Montag
SET TAG2=Dienstag
SET TAG3=Mittwoch
SET TAG4=Donnerstag
SET TAG5=Freitag
SET TAG6=Samstag
SET TAG7=Sonntag
REM XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
REM mit Powershell Wochentag zu Datum herausfinden
for /f %%j in ('powershell ^(get-date %TAG%.%MONAT%.%JAHR%^).DayOfWeek') do (
set dow=%%j
REM englische Schreibweise mit deutschen Wochentagen ersetzen
if %%j == Monday md "%TAG%.%MONAT%.%JAHR% %TAG1%"
if %%j == Tuesday md "%TAG%.%MONAT%.%JAHR% %TAG2%"
if %%j == Wednesday md "%TAG%.%MONAT%.%JAHR% %TAG3%"
if %%j == Thursday md "%TAG%.%MONAT%.%JAHR% %TAG4%"
if %%j == Friday md "%TAG%.%MONAT%.%JAHR% %TAG5%"
if %%j == Saturday md "%TAG%.%MONAT%.%JAHR% %TAG6%"
if %%j == Sunday md "%TAG%.%MONAT%.%JAHR% %TAG7%"
)
)
REM XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
REM Samstag, Sonntag löschen
REM Samstag löschen
for /f "delims=" %%D in ('dir /a:d /b *%TAG6%') do (
rd /S /Q "%%D"
)
REM Sonntag löschen
for /f "delims=" %%D in ('dir /a:d /b *%TAG7%') do (
rd /S /Q "%%D"
)
REM XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
REM Name1 und Name2 als Unterordner
for /f "delims=" %%D in ('dir /a:d /b') do (
cd %%D
md "%FOLDER1%"
md "%FOLDER2%"
cd..
)
REM XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
REM Monatsordner erstellen und verschieben
MKDIR "%MONAT1%"
MKDIR "%MONAT2%"
MKDIR "%MONAT3%"
MKDIR "%MONAT4%"
MKDIR "%MONAT5%"
MKDIR "%MONAT6%"
MKDIR "%MONAT7%"
MKDIR "%MONAT8%"
MKDIR "%MONAT9%"
MKDIR "%MONAT10%"
MKDIR "%MONAT11%"
MKDIR "%MONAT12%"
REM Januar
for /f "delims=" %%D in ('dir /a:d /b *.01.*') do (
move /Y "%%D" "%MONAT1%"
)
REM Februar
for /f "delims=" %%D in ('dir /a:d /b *.02.*') do (
move /Y "%%D" "%MONAT2%"
)
REM März
for /f "delims=" %%D in ('dir /a:d /b *.03.*') do (
move /Y "%%D" "%MONAT3%"
)
REM April
for /f "delims=" %%D in ('dir /a:d /b *.04.*') do (
move /Y "%%D" "%MONAT4%"
)
REM Mai
for /f "delims=" %%D in ('dir /a:d /b *.05.*') do (
move /Y "%%D" "%MONAT5%"
)
REM Juni
for /f "delims=" %%D in ('dir /a:d /b *.06.*') do (
move /Y "%%D" "%MONAT6%"
)
REM Juli
for /f "delims=" %%D in ('dir /a:d /b *.07.*') do (
move /Y "%%D" "%MONAT7%"
)
REM August
for /f "delims=" %%D in ('dir /a:d /b *.08.*') do (
move /Y "%%D" "%MONAT8%"
)
REM September
for /f "delims=" %%D in ('dir /a:d /b *.09.*') do (
move /Y "%%D" "%MONAT9%"
)
REM Oktober
for /f "delims=" %%D in ('dir /a:d /b *.10.*') do (
move /Y "%%D" "%MONAT10%"
)
REM November
for /f "delims=" %%D in ('dir /a:d /b *.11.*') do (
move /Y "%%D" "%MONAT11%"
)
REM Dezember
for /f "delims=" %%D in ('dir /a:d /b *.12.*') do (
move /Y "%%D" "%MONAT12%"
)
REM XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
REM Überflüssige Ordner entfernen
rd /S /Q "%MONAT1%\%FOLDER1%"
rd /S /Q "%MONAT1%\%FOLDER2%"
rd /S /Q "%MONAT2%\%FOLDER1%"
rd /S /Q "%MONAT2%\%FOLDER2%"
rd /S /Q "%MONAT3%\%FOLDER1%"
rd /S /Q "%MONAT3%\%FOLDER2%"
rd /S /Q "%MONAT4%\%FOLDER1%"
rd /S /Q "%MONAT4%\%FOLDER2%"
rd /S /Q "%MONAT5%\%FOLDER1%"
rd /S /Q "%MONAT5%\%FOLDER2%"
rd /S /Q "%MONAT6%\%FOLDER1%"
rd /S /Q "%MONAT6%\%FOLDER2%"
rd /S /Q "%MONAT7%\%FOLDER1%"
rd /S /Q "%MONAT7%\%FOLDER2%"
rd /S /Q "%MONAT8%\%FOLDER1%"
rd /S /Q "%MONAT8%\%FOLDER2%"
rd /S /Q "%MONAT9%\%FOLDER1%"
rd /S /Q "%MONAT9%\%FOLDER2%"
rd /S /Q "%MONAT10%\%FOLDER1%"
rd /S /Q "%MONAT10%\%FOLDER2%"
rd /S /Q "%MONAT11%\%FOLDER1%"
rd /S /Q "%MONAT11%\%FOLDER2%"
rd /S /Q "%MONAT12%\%FOLDER1%"
rd /S /Q "%MONAT12%\%FOLDER2%"
Zuletzt bearbeitet: