Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Automatisiertes Verschieben von Ordnern

Frage Entwicklung Batch & Shell

Mitglied: BinderAlex

BinderAlex (Level 1) - Jetzt verbinden

26.06.2008, aktualisiert 09:29 Uhr, 2911 Aufrufe, 2 Kommentare

Hallo zusammen,

ich nutze das nachfolgende Skript um das Alter (in Minuten) von Verzeichnissen zu überprüfen und im entsprechenden Fall eine Aktion durchzuführen:

@echo off & setlocal

set "Basis=C:\Test"
set /a MaxAge=2
set C=%temp%\ChkAge.vbs


echo WScript.Echo DateDiff("n",WScript.Arguments(0),Now)>%C%
for /d %%v in ("%Basis%\*.*") do call :ProcessFolder "%%v"
goto :eof


:ProcessFolder
for /f "tokens=1-2" %%i in ('dir "%Basis%" /ad /tc^|findstr /i /c:"%~n1"') do set "DT=%%i %%j"
for /f %%i in ('cscript //nologo %C% "%DT%"') do set /a "Age=%%i"

if %Age% gtr %MaxAge% (
echo Das Skript funktioniert fuer %1
)

goto :eof

Nun zum Problem:

In einem bestimmten, festen Verzeichniss, sollen alle enthaltenen Dateien (alle mit Endung .bak) anhand der Jahreszahl (CreateDate) in die entsprechenden Ordner verschoben werden.
Also eine Datei aus dem Jahr 2007 soll in den Ordner "2007" verschoben werden und wenn dieser nicht existiert, soll er angelegt werden.

Welchen Teil des o.g. Skripts muss ich hierfür anpassen?

Vielen lieben Dank schon im Voraus für eure Hilfe
Mitglied: bastla
26.06.2008 um 09:07 Uhr
Hallo BinderAlex!

Die neue Problemstellung hat nur bedingt mit der vorhergehenden zu tun ...

01.
@echo off & setlocal 
02.
set "Verzeichnis=C:\Test" 
03.
set "Ext=.bak" 
04.
set "Ziel=C:\Archiv" 
05.
 
06.
for /f "tokens=1,4" %%i in ('dir /a-d /tc "%Verzeichnis%"^|findstr /i /c:"%Ext%"') do call :ProcessFile "%%i" "%%j" 
07.
goto :eof 
08.
 
09.
:ProcessFile 
10.
for /f "tokens=3 delims=." %%a in (%1) do set Jahr=%%a 
11.
if not exist "%Ziel%\%Jahr%\" md "%Ziel%\%Jahr%\" 
12.
echo move "%Verzeichnis%\%~2" "%Ziel%\%Jahr%\" 
13.
goto :eof
Das Zielverzeichnis wird bei Bedarf neu erstellt, das Verschieben der Dateien durch das "echo" vor dem "move" derzeit nur simuliert - auch, da im Falle einer Namensgleichheit zwischen einer zu verschiebenden Datei und einer sich bereits im Zielverzeichnis befindenden letztere kommentarlos überschrieben würde ...

Grüße
bastla
Bitte warten ..
Mitglied: BinderAlex
26.06.2008 um 09:29 Uhr
Jaa aber so ein bissle hat das schon miteinander zu tun ;)

Auf jeden Fall vielen lieben Dank ... das Skript läuft super.Namensgleichheit kann in diesem Fall ausgeschlossen werden, da es sich um automatisch erstellte Dateien handelt Dankeeeeeeschön

Viele Grüße
Alex
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Verschieben von Ordnern mittels Excelliste und Script (6)

Frage von StrgAltEntf zum Thema Batch & Shell ...

Windows Update
Verschieben der SUSDB.mdf und der SUSDB_log.ldf (1)

Link von Mvinogradac zum Thema Windows Update ...

Windows Server
gelöst Windows 2003 SBS User Profile Verschieben (2)

Frage von MultiStorm zum Thema Windows Server ...

Heiß diskutierte Inhalte
Viren und Trojaner
gelöst Wie werde ich den Mist "fanli90" wieder los? (18)

Frage von Taumel zum Thema Viren und Trojaner ...

Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (16)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

CPU, RAM, Mainboards
Hardware Fragen (12)

Frage von xaver-2 zum Thema CPU, RAM, Mainboards ...

Exchange Server
gelöst Exchange 2013 - Kontakte aus CSV importieren (9)

Frage von hesper zum Thema Exchange Server ...