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

Neueste Dateien Per Batch kopieren

Frage Entwicklung Batch & Shell

Mitglied: shooan

shooan (Level 1) - Jetzt verbinden

21.10.2013 um 16:12 Uhr, 8981 Aufrufe, 19 Kommentare

Hallo,

bin gerade auf der Suche nach einer Möglichkeit mehrere Dateien vom typ *.bkf per Batch zu kopieren.
Dabei sollen immer die neuesten Sicherungen kopiert werden. Also aktuelles Datum - 1 Tag.

Das ganze wollte ich per xcopy machen, Wenn dies möglich ist. Oder Weiß jemand eine Bessere Möglichkeit.

Das ganze Szenario ist so die Daten liegen auf einem NAS und sollen nachehr mit Hilfe dieser Datei auf eine Externe Festplatte geschrieben werden.
Mitglied: colinardo
21.10.2013, aktualisiert um 19:35 Uhr
Hallo shooan,
machs doch mit Robocopy:
Beispiel (bkf-Dateien die max. 24h alt sind von F:\ nach G:\ kopieren):
robocopy "F:\" "G:\" *.bkf /copyall /maxage:1
oder via Powershell:
dir F:\*.bkf | ?{$_.LastWriteTime -gt (Get-date).AddDays(-1)} | Copy-Item -Destination "G:\"
Ansonsten gibt es hier zu diesem Thema etliche Beiträge die du mit der Suchfunktion findest...

Grüße Uwe
Bitte warten ..
Mitglied: shooan
22.10.2013 um 08:49 Uhr
Danke colinardo für die schnelle Antwort. Der Power Shell befehlt geht. der Mit Robocopy irgendwie nicht.

Nun muss ich mal blöd fragen, wie bekommt man den Powershell Befehl in eine Ausführbare Datei die einfach per Doppelklick ausgeführt werden kann?
Bitte warten ..
Mitglied: colinardo
22.10.2013, aktualisiert um 09:26 Uhr
Zitat von shooan:
Danke colinardo für die schnelle Antwort. Der Power Shell befehlt geht. der Mit Robocopy irgendwie nicht.
Der sollte aber gehen, hatte kurz nach meiner Veröffentlichung noch einen kleinen Fehler korrigiert, vielleicht hattest du die fehlerhafte Zeile kopiert und ausprobiert.
Nun muss ich mal blöd fragen, wie bekommt man den Powershell Befehl in eine Ausführbare Datei die einfach per
Doppelklick ausgeführt werden kann?
Den Befehl als *.ps1 speichern und dann Rechtsklick auf die Datei -> "Mit Powershell ausführen".
Man kann die Erweiterung für den Explorer auch so einstellen das PS-Scripte bei einem Doppelklick ausgeführt werden. Dazu kann man z.B. das Tool ExtMan benutzen.

8da9603495b8b173e6cf58f83a7c39b6 - Klicke auf das Bild, um es zu vergrößern

Grüße Uwe
Bitte warten ..
Mitglied: shooan
23.10.2013, aktualisiert um 08:56 Uhr
Ja scheint wohl das ich da was falsches kopiert hatte.

Nun noch eine kleine Frage, wie müsste ich das Script denn umbauen wenn ich nur die Aktuellste Datei will mit Robocopy? Nicht Aktuelles Datum -1 Tag.
Bitte warten ..
Mitglied: colinardo
23.10.2013 um 08:58 Uhr
Zitat von shooan:
Nun noch eine kleine Frage, wie müsste ich das Script denn umbauen wenn ich nur die Aktuellste Datei will mit Robocopy? Nicht
Aktuelles Datum -1 Tag.
dir "F:\*.bkf" | Sort-Object -Descending -Property LastWriteTime | select -First 1 | Copy-Item -Destination "G:\"
Uwe
Bitte warten ..
Mitglied: shooan
23.10.2013 um 09:06 Uhr
Geht das auch mit Robocopy lieber Uwe? Irgendwie gefällt mir das Tool besser als die Powershell variante.
Bitte warten ..
Mitglied: colinardo
23.10.2013, aktualisiert um 10:31 Uhr
so direkt jetzt nicht, könntest du aber so lösen ...
01.
@echo off & setlocal 
02.
set source=F: 
03.
set target=G: 
04.
for /f "tokens=* delims=" %%a IN ('dir /B /S /A-D /O-D "%source%\*.bkf"') DO @( 
05.
  echo Kopiere "%%a" nach "%target%" ... 
06.
  copy "%%a" "%target%" & goto :end 
07.
08.
:end
Bitte warten ..
Mitglied: shooan
23.10.2013 um 09:53 Uhr
Hmm irgendwie ist da der wurm drinnen bei mir

wenn ich es so abändere wie ich es brauche dann geht da irgendwie nicht.

hier mal meine angeänderte Variante

@echo off & setlocal
set source=\\Ad-nt-03\s\BEData\
set target=D:\Test\
for /f "delims=" %%a IN ('dir /B /S /A-D /O-D "%source%\*.bkf"') DO @(copy "%%a" "%target%" & goto :end)
:end

Ist das Script für ne batch file oderfür die Powershell

Würde gerne sehen was er so schafft.
Bitte warten ..
Mitglied: colinardo
23.10.2013 um 09:57 Uhr
Das ist eine stink normale Batchdatei.
Du darfst deine Pfade nicht mit einem Backslash abschließen.
Die Batch listet alle *.bkf-Dateien in dem Verzeichnis auf und sortiert diese absteigend nach Datum so das der Pfad der neuesten Datei ganz oben steht, diese wird in dein Zielverzeichnis kopiert und das Script verlässt die Schleife.

Grüße Uwe
Bitte warten ..
Mitglied: shooan
23.10.2013 um 10:01 Uhr
Zitat von colinardo:
Das ist eine stink normale Batchdatei.
Du darfst deine Pfade nicht mit einem Backslash abschließen.
Die Batch listet alle *.bkf-Dateien in dem Verzeichnis auf und sortiert diese absteigend nach Datum so das der Pfad der neuesten
Datei ganz oben steht, diese wird in dein Zielverzeichnis kopiert und das Script verlässt die Schleife.

Grüße Uwe

Danke nun wieder etwas schlauer, dennoch geht nur ganz geschwind das Eingabefenster auf und geht sofort wieder zu. Er macht leider nix.
Bitte warten ..
Mitglied: colinardo
23.10.2013 um 10:04 Uhr
dann hast du noch einen Fehler ... öffne mal eine Konsole und führe das Script darin aus um zu sehen welchen Fehler er dir bringt.
Bitte warten ..
Mitglied: shooan
23.10.2013 um 10:25 Uhr
Als Fehler kommt.

Das System kann den angegebenen Pfad nicht finden.

schon komisch weil das eine ist ein nas was definitiv darüber erreichbar ist und d:\test ist eine lokale Festplatte
Bitte warten ..
Mitglied: shooan
23.10.2013, aktualisiert um 10:35 Uhr
Ahh habe den Fehler wohl gefunden. Es war noch nach den Pfad ne Lehrzeichen.

nun wäre es noch schön zu sehen was er macht. bzw welche Datei er gerade kopiert. Gerade sieht man nix aber die Daten werden kopiert.

Wie ich gerade sehe kopiert er nur die Aktuellste Datei, das ist zwar gut aber er müsste die anderen Dateien die heute auch geschrieben wurden auch mit kopieren.
Bitte warten ..
Mitglied: colinardo
23.10.2013 um 10:36 Uhr
habs oben im Coder ergänzt, einfach eine Echo-Zeile vor den Copy-Befehl
echo Kopiere "%%a" nach "%target%" ...
Eine Fortschrittsanzeige hat der normale Copy-Befehl nicht ...dazu müsstest du dann wieder robocopy verwenden
Bitte warten ..
Mitglied: colinardo
23.10.2013 um 10:37 Uhr
Zitat von shooan:
Wie ich gerade sehe kopiert er nur die Aktuellste Datei, das ist zwar gut aber er müsste die anderen Dateien die heute auch
geschrieben wurden auch mit kopieren.
dann war deine erste Beschreibung zu ungenau
Bitte warten ..
Mitglied: colinardo
23.10.2013, aktualisiert um 10:51 Uhr
Zitat von shooan:
Wie ich gerade sehe kopiert er nur die Aktuellste Datei, das ist zwar gut aber er müsste die anderen Dateien die heute auch
geschrieben wurden auch mit kopieren.
01.
@echo off & setlocal 
02.
set today=%date:~6,4%%date:~3,2%%date:~0,2% 
03.
robocopy "\\Ad-nt-03\s\BEData" "D:\Test" *.bkf /maxage:%today%
Das nächste mal bitte deine Wünsche genauer spezifizieren ...
Damit sollte der Beitrag erledigt sein ...

Viel Erfolg
Grüße Uwe
Bitte warten ..
Mitglied: shooan
23.10.2013 um 10:49 Uhr
Das stimmt wohl.

Da habe ich mich echt falsch ausgedrückt.

Gut die Dateien Werden nun ALLE an Aktuellen datum geschrieben, dies ist nun so eingestellt. Die Batch Datei soll nun alle Dateien vom Aktuellen Datum wegkopieren auf ein anderes Verzeichnis.

Klar kann man das auch per Hand machen aber mit der Bach kann man schön einen task machen. das ist der Hintergrund.
Bitte warten ..
Mitglied: colinardo
23.10.2013 um 10:54 Uhr
siehe letzten post ...
Wenns das dann war, den Beitrag bitte noch als gelöst markieren. Danke.
Bitte warten ..
Mitglied: shooan
23.10.2013 um 10:58 Uhr
Mache gerade einen Testlauf wenn der durch ist mache ich das gerne

Danke schon mal für die Hilfe
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

Exchange Server
DNS Einstellung - zwei feste IPs für Mailserver (15)

Frage von ivan0s zum Thema Exchange Server ...