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

Dateien in Unterverzeichnis kopieren mit Datum der letzten Änderung

Frage Entwicklung Batch & Shell

Mitglied: sasasasa

sasasasa (Level 1) - Jetzt verbinden

14.07.2009, aktualisiert 12:37 Uhr, 6497 Aufrufe, 3 Kommentare, 1 Danke

Ich möchte Alle Dateien in einem Verzeichnis in ein Unterverzeichnis kopieren und dabei die Dateinamen so modifizieren, dass das Datum der letzten Änderung der jeweiligen Datei in einem bestimmten Format an den Dateinamen angehängt wird.

Ich weiß noch nicht so recht, wie ich das anstellen soll... Hier erstmal ein Beislpiel wie es aussehen soll:

Ordner: C:\Beispiel
Unterordner: c:\Beispiel\Unterordner

Dateien in C:\Beispiel:
bsp1.txt - zuletzt geändert am 01.01.2009
bsp2.txt - zuletzt geändert am 03.05.2009

Soll-Dateien in C:\Beispiel\Unterordner:
bsp1_20090101.txt
bsp2_20090503.txt

Folgendes war mein erster Ansatz um an das Datum zu kommen war:

01.
set mycopypath=C:\Beispiel 
02.
 
03.
for /f "delims=" %%i in ('dir %mycopypath% /s /b /a-d') do ( 
04.
	set file_date=%%~ti 
05.
	echo %file_date% 
06.
07.
 
Allerdings erhalte ich dabei nur ein Datum und auch alle Dateien aus allen Unterverzeichnissen
Außerdem erhalte ich den gesamten Pfad, den ich dann noch auseinander nehmen müsste, um das Ziel für den copy-Befehl zu generieren. Desweiteren muss das Datum noch umformatiert werden. Stehe da etwas Ratlos vor. Normalerweise würde ich für sowas kurz eine Anwendung programmieren, damit wär ich in ein paar Minuten durch, aber leider kann man sich das ja nicht immer aussuchen...
Mitglied: sasasasa
14.07.2009 um 15:25 Uhr
Die Zerlegung des Datums und neue Zusammensetzung habe ich nun schon gelöst:

01.
Set jahr=%file_date:~6,4% 
02.
set monat=%file_date:~3,2% 
03.
set tag=%file_date:~0,2%
Bitte warten ..
Mitglied: sasasasa
14.07.2009 um 17:23 Uhr
Habe das Problem nun gelöst, in dem ich das Prozedere auf 2 Batch-Dateien aufgeteilt habe: Die For-Schleife und das kopieren:

Hier die Datei für die Schleife:

01.
@echo off 
02.
 
03.
set projectpath=C:\Beispiel\ 
04.
 
05.
for /f %%i in ('dir %projectpath% /b /a-d') do ( 
06.
	call c:\batch\copywithmodifieddate.bat %projectpath%%%i %projectpath%Unterordner 
07.
)
copywithmodifieddate.bat

01.
@echo off 
02.
 
03.
if {%1}=={} ( 
04.
	goto :error 
05.
06.
 
07.
if {%2}=={} ( 
08.
	goto :error 
09.
10.
 
11.
set file_date=%~t1 
12.
Set jahr=%file_date:~6,4% 
13.
set monat=%file_date:~3,2% 
14.
set tag=%file_date:~0,2% 
15.
set stunde=%file_date:~11,2% 
16.
set minute=%file_date:~14,2% 
17.
 
18.
set ModifiedDate=%jahr%%monat%%tag%_%stunde%%minute% 
19.
set FileName=%~nx1 
20.
set FileEnding=%FileName:~-4% 
21.
set NewFileName=%FileName:~0,-4% 
22.
set NewFileName=%NewFileName%_%ModifiedDate%%FileEnding% 
23.
set NewFileName=%2\%NewFileName% 
24.
 
25.
copy %1 %NewFileName% /Y 
26.
 
27.
goto :end 
28.
 
29.
 
30.
 
31.
:error 
32.
echo "Usage of copywithmodifieddate:" 
33.
echo "copywithmodifieddate <SourceFile> <DestinationFolder>" 
34.
 
35.
 
36.
:end
Bitte warten ..
Mitglied: Biber
14.07.2009 um 17:58 Uhr
Moin sasasasa,

willkommen im Forum.
und danke fürs Bereitstellen Deiner vorbildlich strukturierten Lösung.

Lass mich raten - Du bringst als Programmier-Hintergrund offensichtlich VB-Kenntnisse mit? *g

Zum rein Handwerklichen noch ein, zwei Tipps:
  • Du musst nicht zwei Batchfiles verwenden, sondern kannst auch einen "call" auf einen benannten Codeblock in der gleichen Batchdatei absetzen. Also das, was Du bisher mit "call externeAusführbareDatei Parameter1 Parameter2" tust geht (fast) genauso mit "call: internerBenannterBlock parameter1 Parameter2".
  • Vorteil davon: wenn es ein "interner" Block ist, dann kannst Du Dir die ganzen Parameterprüfungen schenken - Du bist der Einzige, der es aufruft und Du weißt wie
  • das "goto :end " mit einer handgeschriebenen Sprungmarke ":end" kannst Du ersetzen durch ein "goto :eof" mit "virtuell geschriebener" Sprungmarke ":eof"
  • und damit alle Variablen, die Dein Schnipsel so braucht, auch "privat" bleiben verwende in Zukunft den Befehl "SetLocal"

[Alle erwähnten neuen Vokabeln hat M$ relativ gut dokumentiert ... ein "Setlocal /?" oder "call /?" oder "goto /?" vom CMD-Prompt aus schafft schnell Klarheit.]

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Eine Datei in einen unbekanntes Unterverzeichnis kopieren
gelöst Frage von mschaedler1982Batch & Shell8 Kommentare

Hallo zusammen. Ich sitze hier vor einem Problem und das bekomme ich nicht gelöst. Ich möchte aus einem bestimmten ...

Batch & Shell
Batchdatei zum kopieren bestimmter Dateien in ein bestimmtes Unterverzeichnis
gelöst Frage von imebroBatch & Shell8 Kommentare

Guten Tag, ich habe ein Hauptverzeichnis (HV), in dem 250 Unterverzeichnisse mit unterschiedlichen Namen liegen. Manche dieser 250 Unterverzeichnisse ...

Batch & Shell
Unterverzeichnis für Unterverzeichnis via Batch-Datei durchsuchen
gelöst Frage von dhc-beaverBatch & Shell4 Kommentare

Hallo Forum. Obgleich es viele Werkzeuge gibt, um Bilder von 5MP-Handykameras kleiner zu machen, scheitert man an der Faulheit ...

Batch & Shell
Wenn bestimmtes Datum dann bestimmte Datei kopieren
gelöst Frage von rohu2007Batch & Shell31 Kommentare

Hallo Zusammen, ich komme leider nicht weiter. Ich möchte eine Datei kopieren, wenn ein bestimmtes Datum eintrifft. Das heutige ...

Neue Wissensbeiträge
Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 5 StundenWindows 101 Kommentar

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 7 StundenSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 1 TagViren und Trojaner2 Kommentare

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 1 TagRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Brainstorming, einfachste Option 1 getrenntes LAN (mit WAN zugang)
Frage von 132954LAN, WAN, Wireless13 Kommentare

Hi, folgendes: Wir bekommen eine Glasfaser Leitung, Und das sollte Optional so aussehen: Ein Modem/Router für das WAN, ein ...

Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Netzwerkgrundlagen
Hi eine blöde frage. xD
Frage von 132954Netzwerkgrundlagen12 Kommentare

Also: Habe 2012 r2 essentials neuinstalliert, allerdings installiert diese version ja gleich diesen gangen AD kram mit, den hab ...