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

Dateien des aktuellen Monats verschieben

Frage Entwicklung Batch & Shell

Mitglied: speedy4you

speedy4you (Level 1) - Jetzt verbinden

13.01.2011 um 09:56 Uhr, 3538 Aufrufe, 3 Kommentare

Hallo,
ich möchte Dateien des aktuellen Monats in einem Archiv Ordner verschieben.
Es wird ein Ordner mit dem aktuellen Datum erstellt aber leider werden keine Dateien verschoben.

Kann mir jemand sagen wo der Fehler liegt?

Ich will die batch Datei auf einem Windows Server 2008 laufen lassen.

meine batch Datei:

set jahr=%date:~-4%
set monat=%date:~-7,2%

REM Monat ermitteln
if %monat%==01 set monat=01
if %monat%==02 set monat=02
if %monat%==03 set monat=03
if %monat%==04 set monat=04
if %monat%==05 set monat=05
if %monat%==06 set monat=06
if %monat%==07 set monat=07
if %monat%==08 set monat=08
if %monat%==09 set monat=09
if %monat%==10 set monat=10
if %monat%==11 set monat=11
if %monat%==12 set monat=12


rem Archivordner wird erzeugt, falls nicht vorhanden
rem Hier müssen die benötigten Pfade definiert werden
rem --------------------------------------------------------

rem Name des Archivordners
set ordner=%jahr%_%monat%

rem Pfad wo der Archivordner liegen soll
set pfad=C:\Temp\TEST\Archiv

rem Name des zu untersuchenden Ordners
set source=C:\Temp\TEST

if not exist %pfad%\%ordner% md %pfad%\%ordner%


rem Alle Dateien aus dem jeweiligen Monat werden nun verschoben
rem --------------------------------------------------

FOR /f "tokens=4" %%a IN ('dir %source% /A-D ^|find "%monat%.%jahr%"') DO (

move %source%\"%%a" %pfad%\%ordner%
Mitglied: 60730
13.01.2011 um 10:16 Uhr
moin,

ähh was bedeutet denn - wenn monat==01 set monat=01 usw? wirst du nach geschriebenen Zeilen bezahlt?

set ordner=%jahr%_%monat%
Braucht es das auch?
move %source%\"%%a" %pfad%\%ordner%

warum nicht sicherheitshalber
move "%source%\%%a" "%pfad%\%ordner%\"

bzw:
move "%source%\%%a" "%pfad%\%jahr%_%monat%\"
Ich finde "logische" Variablen besser und wenn ich eine Variable nur einmal brauche und die eh eine Kombination von mehreren Variablen ist - spare ich sowas gerne ein.

btw²

01.
FOR /f "tokens=4" %%a IN ('dir %source% /A-D ^|find "%monat%.%jahr%"') DO ( 
02.
 
03.
move %source%\"%%a" %pfad%\%ordner%
Kennst du den Zwillingsbruder vom Karl klammer? Der fehlt bei dir... (und ist eh unnötig)
01.
FOR /f "tokens=4" %%a IN ('dir %source% /A-D ^|find "%monat%.%jahr%"') DO move "%source%\%%a" "%pfad%\%jahr%_%monat%\"
btw³ - wenn das script regelmäßig lauft - warum denn überhaupt die Schleife zum finden der aktuellen Monatsdateien?
Ist der Ordner am Ende des Monats leer - und das Script läuft regelmäßig - sind doch eh alle neuen Dateien aus dem aktuellen Ordner?

gruß
Bitte warten ..
Mitglied: bastla
13.01.2011 um 10:20 Uhr
... wobei es gelegentlich auch Dateien mit Leerzeichen im Namen geben könnte - dann besser:
FOR /f "tokens=3*" %%a IN ('dir "%source%" /A-D ^|find "%monat%.%jahr%"') DO move "%source%\%%b" "%pfad%\%jahr%_%monat%\"
[Edit] Auch von mir noch ein btw : Wenn einfach nur anhand des Änderungsdatums auf die entsprechenden Archivordner verteilt werden soll:
01.
pushd "%source%" 
02.
for /f %%i in ('dir /b /a-d') do for /f "tokens=2,3 delims=. " %%a in ("%%~ti") do echo move "%%i" "%pfad%\%%b_%%a\" 
03.
popd 
04.
pause
Das "echo" vor dem "move" ist zum Testen (irgendwer muss das ja dann auch einmal machen ) gedacht und kann (genauso wie "pause") danach entsorgt werden ...
[/Edit]

Grüße
bastla

P.S.: Und dann noch der leider immer wieder erforderliche Hinweis auf die "Code"-Formatierung ...
Bitte warten ..
Mitglied: speedy4you
13.01.2011 um 12:48 Uhr
Hey,
das "durcheinander" kommt vom vielen Versuchen. Eigendlich wollte ich alle Dateien des Vormonats in einem Ordner sichern.
Wenn ich natürlich nur Dateien aus dem aktuellen Monat habe brauche ich diese Prüfung natürlich nicht...stimmt auffällig
Habe mich da wohl ein wenig verrannt...ich lasse das Script einfach am Ende des Monats laufen ...ist einfacher.
Besten Dank..
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Nur aktuelle Dateien kopieren (3)

Frage von icke.hausen zum Thema Batch & Shell ...

Batch & Shell
Datei nach Erstellungsdatum verschieben (2)

Frage von Kugelschreiber1 zum Thema Batch & Shell ...

Windows 7
gelöst Dateien verschieben Sicheheitswarnung Aktivieren (1)

Frage von Krabbelfiechle zum Thema Windows 7 ...

VB for Applications
gelöst Kalender: Aktuellen Tag in Spalte fokussieren und verschieben (3)

Frage von Anrion zum Thema VB for Applications ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows 10
Windows 10 im Unternehmen? (28)

Frage von zorlayan zum Thema Windows 10 ...

LAN, WAN, Wireless
Ping u. DNS geht am Rechner nicht mehr (21)

Frage von Kuemmel zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
CNC Maschinen verlieren Netzwerkverbindung (kurioser Fehler) (17)

Frage von NoHopeNoFear zum Thema LAN, WAN, Wireless ...