Top-Themen

Aktuelle Themen (A bis Z)

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 Skript soll Dateien in "Monats" Ordner kopieren

Mitglied: agnostiker

agnostiker (Level 1) - Jetzt verbinden

08.12.2015, aktualisiert 15:38 Uhr, 1234 Aufrufe, 11 Kommentare, 1 Danke

Ziel:
Alle Dateien die innerhalb des letzten Monats erstellt wurden in einen Ordner kopieren der den Namen des aktuellen Monats traegt.

Problem:
Habe ein Skript gebastelt das zum einen einen aktuellen Monats Ordner erstellt, soweit so gut.
Da nicht jeder Monat 30 Tage hat kann ich mit dem Flag /D nichts anfangen.

Frage:
Wie muss ich das Skript anpassen sodass alle files des aktuellen Monats ausgewaehlt werden, egal wie lange dieser ist ?

01.
set datetimef=%date:~-4%-%date:~3,2% 
02.
if not exist "\\sharename\folder\%datetimef%" mkdir "\\sharename\folder \%datetimef%" 
03.
forfiles -p "\\sharename\folder\source" -s -m *.xml /D -30 /C "cmd /c copy @file "\\sharename\folder\%datetimef%"

Mitglied: 122990
08.12.2015, aktualisiert um 14:10 Uhr
Powershell z.B.
01.
# Zielordner erstellen im Format YYYYMM
02.
$target = "\\sharename\folder\$(get-date -F 'yyyyMM')"
03.
# Wenn Zielordner noch nicht existiert erstelle ihn
04.
if (!(Test-Path $target)){md $target}
05.
# Suche alle *.xml Dateien in allen Unterordnern des Quellordners welche keine Ordner sind und deren Erstelldatum >= dem ersten des aktuellen Monats  ist und kopiere diese in den Zielordner
06.
gci '\\sharename\folder\source' -Filter *.xml -recurse | ?{!$_.PSIsContainer -and $_.CreationTime -ge (get-date "01.$((get-date).Month)")} | copy-item -Destination $target -Force
Gruß grexit
Bitte warten ..
Mitglied: agnostiker
08.12.2015 um 14:05 Uhr
Hi, danke Grexit, kannst Du mir kurz erklaeren welches flag da was genau macht ?!..
Bitte warten ..
Mitglied: 122990
08.12.2015 um 14:10 Uhr
Zitat von agnostiker:
Hi, danke Grexit, kannst Du mir kurz erklaeren welches flag da was genau macht ?!..
Kommentare sind oben im Code hinzugefügt
Bitte warten ..
Mitglied: agnostiker
08.12.2015 um 14:12 Uhr
Das bedeutet:

Wenn ich die Daten fuer Dezember aufbereiten muesste, wuerde ich das Script am 1.1. laufen lassen, alle files kleiner des aktuellen Tages wuerden selektiert und verschoben, richtig ?
Bitte warten ..
Mitglied: 122990
08.12.2015, aktualisiert um 14:15 Uhr
Zitat von agnostiker:
Wenn ich die Daten fuer Dezember aufbereiten muesste, wuerde ich das Script am 1.1. laufen lassen, alle files kleiner des aktuellen Tages wuerden selektiert und verschoben, richtig ?
Nein hier muss das Skript im selben Monat "wie du ja sagtest" laufen gelassen werden, kann man aber leicht anpassen wie man will, in dem man das get-date anpasst.
Bitte warten ..
Mitglied: agnostiker
08.12.2015, aktualisiert um 14:20 Uhr
Sorry habe eben auf dem Schlauch gestanden, aktuell waere es folgendermaßen ( dein skript ):

Alle Files mit Erstellungsdatum größer oder gleich des aktuellen Monats wuerden selektiert, ich muss das Skript im aktuellen Monat laufen lassen.
Hmm, dann habe ich wieder das Problem das ich im taskplaner nicht definieren kann wann "ende" des Monats ist....obwohl ich koennte alle Monate selektieren und dann die Option "letzer" nutzen ?!...
Bitte warten ..
Mitglied: 122990
08.12.2015 um 14:21 Uhr
Ich sag doch lässt sich einfach anpassen ...Für deinen gewünschten Fall heißt die letzte Zeile des obigen Skripts so:
01.
gci '\\sharename\folder\source' -Filter *.xml -recurse | ?{!$_.PSIsContainer -and $_.CreationTime -ge (get-date "01.$((get-date).AddMonths(-1).toString('MM.yyyy'))")} | copy-item -Destination $target -Force
Bitte warten ..
Mitglied: agnostiker
08.12.2015 um 14:28 Uhr
Ok, dann wuerde ich das Skript am 1.1. laufen lassen, der zieht sich das aktuelle datum und mittels addmonth -1 gehts dann zum vorherigen monat, richtig ?
Bitte warten ..
Mitglied: 122990
08.12.2015, aktualisiert um 14:30 Uhr
logisch ...
Get-Date
Bitte warten ..
Mitglied: agnostiker
08.12.2015 um 14:35 Uhr
Müsste man in dem Fall nicht auch das Get-Date fuers Target abaendern ?
Bitte warten ..
Mitglied: 122990
LÖSUNG 08.12.2015, aktualisiert um 15:38 Uhr
Ja, aber müssen wir hier echt alles bis ins Fitzelchen vorbeten ??
$target = "\\sharename\folder\$((get-date).AddMonths(-1).toString('yyyyMM'))"
Doku lesen kannst du oder ?

Also dann nochmal zusammengefasst:
01.
# Zielordner erstellen im Format YYYYMM
02.
$target = "\\sharename\folder\$(get-date).AddMonths(-1).toString('yyyyMM')"
03.
# Wenn Zielordner noch nicht existiert erstelle ihn
04.
if (!(Test-Path $target)){md $target}
05.
# Suche alle *.xml Dateien in allen Unterordnern des Quellordners welche keine Ordner sind und deren Erstelldatum >= dem ersten des letzten Monats ist und kopiere diese in den Zielordner
06.
$min = get-date "01.$((get-date).AddMonths(-1).toString('MM.yyyy')")
07.
$max = $min.AddMonths(1)
08.
gci '\\sharename\folder\source' -Filter *.xml -recurse | ?{!$_.PSIsContainer -and $_.CreationTime -ge $min -and $_.CreationTime -lt $max} | copy-item -Destination $target -Force
Damit sollte das Thema gegessen sein.
Bitte warten ..
Ähnliche Inhalte
Debian
Bash-Skript: Datei einlesen
gelöst Frage von Fenris14Debian3 Kommentare

Moin, also entweder bin ich zu dumm oder ich denke zu kompliziert. Ich versuche ein Skript zu schreiben das ...

VB for Applications
VB Skript Excel Datei
gelöst Frage von FragerVB for Applications3 Kommentare

Hallo Zusammen, Ich brauche eure Hilfe. Ich habe eine Datei 1.xlsx nun brauche ich ein Skript, was die Datei ...

XML
XML Datei per Skript ändern
gelöst Frage von chrisenXML12 Kommentare

Hallo zusammen, ich habe eine Frage zur automatischen Konvertierung einer XML Datei. Und zwar: Wir bekommen aus unserem Warenwirtschaftssystem ...

Datenbanken

Access 2016 vertauscht Monat und Tag in meiner CSV Datei

Frage von iGordonDatenbanken1 Kommentar

Hi, ich habe ein Problem und hoffe etwas Hilfe zu bekommen. Ich arbeite mit Access 2016. Ich habe eine ...

Neue Wissensbeiträge
Humor (lol)
Das IoT wird schlimmer
Erfahrungsbericht von Henere vor 14 StundenHumor (lol)3 Kommentare

Nun auch schon über den WSUS:

Sicherheit

Win10 1809 und höher erlauben nun das Sperren und Whitelisten von bestimmten Geräten

Tipp von DerWoWusste vor 1 TagSicherheit1 Kommentar

Vor 1809 konnten nur Geräteklassen gesperrt werden, nun können endlich einzelne Device instance IDs gewhitelistet werden (oder andersherum: gesperrt ...

Windows 10

Hands-On: What is new in the Windows 10 November 2019 Update?

Information von DerWoWusste vor 1 TagWindows 10

Die wenigen (aber zum Teil interessanten) Neuheiten werden in diesem Video sehr schnell erklärt und vorgeführt.

Grafik

Gute Spiele aus der Ubuntu Repository: SuperTuxKart

Information von NetzwerkDude vor 1 TagGrafik2 Kommentare

Fall jemand die Firmenpolicy hat das man Linux Software nur aus dem default Repository installieren kann: Ich habe festgestellt ...

Heiß diskutierte Inhalte
Ubuntu
Ubuntu-Putty hilfe
gelöst Frage von Nickolas.GroheUbuntu53 Kommentare

Hallo Wie ändere ich einen ssh Port auf Linux Ubuntu? LG Nickolas

Netzwerke
VPN auf Firmennetzwerk (Festplatten, Computer) einrichten, aber wie?
Frage von 81083Netzwerke34 Kommentare

Hallo, es ist ein Bisschen frustrierend. Wir haben einen 2012 R2 Server, eine Fritzbox und etwa 10-12 PC die ...

Windows 7
Festplatte in einen anderen PC umziehen lassen
Frage von Ghost108Windows 729 Kommentare

Hallo zusammen, ich bekomme die nächsten Tage einen neuen PC (komplett andere Hardware als in meinem jetzigen) Was für ...

LAN, WAN, Wireless
10G Netzwerk konfigurieren für maximalen Datendurchsatz
Frage von hukimanLAN, WAN, Wireless29 Kommentare

Guten Morgen, in unserem Betrieb wurde das Netzwerk auf 10G (Kupfer) umgerüstet. Grund dafür sind große Laserscandaten die sehr ...