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

Batchfile zum automatischen umbennen vorhandener Dateien beim kopieren

Frage Entwicklung Batch & Shell

Mitglied: Seether1977

Seether1977 (Level 1) - Jetzt verbinden

10.05.2007, aktualisiert 11.05.2007, 4732 Aufrufe, 4 Kommentare

Hallo,

in einen Ordner auf einem unserer Server legen Entwickler verschiedenste Dateien ab (alle mit den unterschiedlichen Namen und unterschiedlichen Dateiendungen, je nach Anwendungsgebiet).
Ich möchte diese Dateien jetzt per Batchfile merhmals pro Tag in einen anderen Ordner auf einen zweiten Server kopieren, allerdings darf dabei eine eventuell schon vorhandene Datei auf dem Zielserver keinesfalls überschrieben werden, sondern lediglich umbenannt werden (am besten wäre es wenn in dem Namen der vorhandenen Datei einfach %old% oder sowas eigefügt würde).
Das alles wäre eigentlich kein Problem, wenn die Dateien alle konstante Namen und Erweiterungen hätten, aber da die Dateinamen und Erweiterungen ständig wechseln komme ich da mit meinen Kenntnissen nicht weiter (ich habe die Suchfunktion auch schon benutzt, aber nichts gefunden was ich auf diesen Fall anwenden könnte).

Ich bin für jede Hilfe bei diesem Problem dankbar.

MfG

Seether
Mitglied: bastla
10.05.2007 um 17:38 Uhr
Hallo Seether1977!

Wäre es eine Option, den Kopien einfach Datum und Uhrzeit (abgeleitet vom Zeitpunkt der Sicherung) anzufügen, sodass etwa die Sicherung der Datei "Projekt3.xyz" den Namen "Projekt3_20070510_173820.xyz" erhielte? Falls ja, könntest Du es wie folgt versuchen:
01.
@echo off & setlocal 
02.
set "Quelle=D:\Datenordner" 
03.
set "Ziel=D:\Sicherungsordner" 
04.
for /f "delims=" %%i in ('dir "%Quelle%\*.*" /b /aa-d 2^>nul') do call :ProcessFile "%Quelle%\%%i" 
05.
goto :eof 
06.
:ProcessFile 
07.
set Timestamp=%date:~6,4%%date:~3,2%%date:~0,2%_%time:~0,2%%time:~3,2%%time:~6,2% 
08.
copy %1 "%Ziel%\%~n1_%Timestamp%%~x1">nul && attrib -a %1
Bitte vorweg die Pfadangaben in den beiden "set"-Zeilen am Anfang anpassen.

Die zu kopierenden Dateien werden anhand des gesetzten Archiv-Attributes ausgewählt - kopiert werden dadurch nur seit dem letzten Sicherungslauf veränderte bzw neu hinzugekommene Quelldateien.

Es werden nur Dateien des angegebenen Quellordners, nicht aber jene eventueller Unterordner berücksichtigt.

Grüße
bastla
Bitte warten ..
Mitglied: Biber
10.05.2007 um 18:14 Uhr
Moin seether1977,

willkommen im Forum.

Auch wenn bastlas Lösung die Anforderungen erfüllt, solltest Du doch dringend anregen (oder einfach anleiern), dass diese Entwickler ein Versionsverwaltungsinstrument bereitgestellt bekommen.

Diese Datei-mit-Tagesdatum-und-Uhrzeit-ins-Hochregallager-reinschieb-Mimik ist ja okay für diese ganzen Zweit- und Drittsicherungen von Logfiles auf irgendeinen halbleeren Fileserver, aber perspektivisch nicht geeignet für eine Entwicklung modular aufgebauter (aber nicht streng strukturierter) Projekte im Team.

Wenn Du heute, 2007, von Entwicklern sprichst, kann es sich eigentlich nur um Java C/S-Entwickler handeln.
In diesen (und den meisten anderen Entwicklungsumgebungen) wäre ein Blick auf das CVS (CVS Concurrent Versions System Mainpage sinnvoll.

Siehe auch Wikipedia.

Gruss
Biber
Bitte warten ..
Mitglied: Seether1977
11.05.2007 um 12:55 Uhr
Hallo,

ersteinmal vielen Dank @bastla für die Batchdatei, funktioniert soweit reibungslos, hat aber leider noch einen Schönheitsfehler:

Es werden die Dateien die aus dem Quellordner in den Zielordner kopiert werden umbenannt, es müsste aber so sein das die im Zielordner bereits vorhandenen Dateien umbenannt werden (nicht die Dateien aus dem Quellordner). Kann man die Batchdatei dafür entsprechend anpassen?

@Biber Das ganze ist auch nur eine Übergangslösung.

MfG

Jörg
Bitte warten ..
Mitglied: bastla
11.05.2007 um 13:28 Uhr
Hallo Seether1977!

Es werden die Dateien die aus dem Quellordner in den Zielordner kopiert werden umbenannt, es müsste aber so sein das die im Zielordner bereits vorhandenen Dateien umbenannt werden (nicht die Dateien aus dem Quellordner).
Warum? Welchen Unterschied macht es, ob ich eine Datei zuerst kopiere und dann umbenenne oder dies bereits beim Kopieren erledige?

Falls es Dein Ziel sein sollte, die jeweils aktuelle Version ohne Namenszusatz zur Verfügung zu haben, könntest Du einfach eine zweite Kopie davon unter dem Originalnamen erstellen. Dafür könntest Du an die Batchdatei als letzte Zeile folgendes anfügen:
01.
copy /y %1 "%Ziel%\%~nx1">nul
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Dateien kopieren die nicht mehr verändert werden? (10)

Frage von pbelcl zum Thema Batch & Shell ...

Batch & Shell
Dateien umbennen und verschieben mit bash (3)

Frage von sbsnewbie zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateien aus einer Liste anhand verschiedener Parameter kopieren (6)

Frage von gnumpf21 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Windows Server

Exchange 2010 Active Directory und Windows Server 2016

(4)

Erfahrungsbericht von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Internet
gelöst Mitarbeiter surft auf unerwünschter Seite - Wie damit umgehen? (52)

Frage von sabines zum Thema Internet ...

Netzwerke
LAN2LAN Verbindung sehr langsam flaschenhals gesucht (27)

Frage von PixL86 zum Thema Netzwerke ...

Router & Routing
PFsense - Netzverbindung steht, aber kein Internet vorhanden (24)

Frage von aschmid zum Thema Router & Routing ...

Windows Server
gelöst Windows 2016 Hyper-V und VHDS (19)

Frage von emeriks zum Thema Windows Server ...