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

Erstellung Batch-Datei Kopieren und Umbenennen falls vorhanden

Frage Entwicklung Batch & Shell

Mitglied: sascha27283

sascha27283 (Level 1) - Jetzt verbinden

21.08.2013 um 09:19 Uhr, 2386 Aufrufe, 16 Kommentare, 3 Danke

Hallo zusammen,

dies ist mein erster Post hier und ich hoffe ihr könnt mir helfen.

Ich habe eine kleine selbstgebastelte Lösung für unsere Verwaltung entwickelt. Ohne jetzt lange drum herum zu reden, will ich gleich zum Punkt kommen.
Es liegt eine Datei in einem Ordner (C:\Programme\Sicherung\Sicherung.xxx). Diese Datei soll auf ein Serverlaufwerk verschoben werden (U:\......\Sicherungen). Da die Datei bei allen Clients (ca. 60) aber genau gleich heisst, soll in der Batch-Datei beinhaltet sein, dass beim Kopiervorgang geprüft wird, ob die Datei bereits im Zielordner vorhanden ist und wenn ja, FORTLAUFEND umbenannt (also Sicherung_1.xxx, Sicherung_2.xxx) und anschliessend in den Ordner kopiert wird, sodass ich am Ende 60 Dateien mit Sicherung_x.xxx haben sollte. Es soll also keine Datei überschrieben werden. Es muss also geprüft werden, ob der Originalname vorhanden ist und bei Bedarf die letzte fortlaufende Nummerung verwendet wird. Sollte also bereits Sicherung_15.xxx vorhanden sein, soll die Datei in Sicherung_16.xxx umbenannt werden.
Da ich mich nur rudimentär mit Batch auskenne, bekomme ich sowas leider nicht und habe bislang auch keine Anleitung für eine fortlaufende automatische Nummerierung gefunden.

Ich würde mich sehr freuen, wenn sich jemand damit auskennt und mir möglicherweise den Text für diese Batch-Datei erstellen könnte oder mir zumindest behilflich sein kann.

Falls es noch Fragen gibt, einfach melden

Vielen Dank vorab!

MFG
Sascha
Mitglied: tibor.nemes
21.08.2013 um 10:59 Uhr
Hallo Sascha,

wäre es nicht sinnvoller im Dateinamen den Clientnamen hinzuzufügen?
Läuft die Batch auf jedem Client zur gleichen Zeit? Dann würde es bei deiner Variante zu inkonsistenten Zuständen kommt. Und wie würdest du die Rücksicherung realisieren?

Viele Grüße
Tibor
Bitte warten ..
Mitglied: bastla
21.08.2013 um 11:01 Uhr
Hallo sascha27283 und willkommen im Forum!

Wäre es nicht ev sinnvoller, anstatt "Sicherung_1.xxx" die Sicherungsdatei "Sicherung_%computername%.xxx" zu benennen?

Wie (und von wo aus - Server / Client) wird übrigens der Batch gestartet?

Grüße
bastla
Bitte warten ..
Mitglied: B-free
21.08.2013 um 11:12 Uhr
öhm. ich denke ungefähr so:
01.
Qecho off 
02.
 
03.
if not exist "C:\Programme\Sicherung\rename\NUL" md "C:\Programme\Sicherung\rename" 
04.
 
05.
set path1 = C:\Programme\Sicherung\ 
06.
set serveradresse = ***!Hier serveradresse eintragen!*** 
07.
 
08.
set /p numerierung =<%path1%/letztenummer.log 
09.
set aktuellenummer = %numerierung% + 1 
10.
echo %aktuellenummer%>> %path1%/letztenummer.log 
11.
 
12.
copy "C:\Programme\Sicherung\Sicherung.xxx" "C:\Programme\Sicherung\rename\Sicherung.xxx" 
13.
 
14.
cd %path1% 
15.
 
16.
ren %path1%\rename\Sicherung.xxx sicherung_%aktuellenummer%.xxx 
17.
 
18.
::Hab kein plan ob es geht :( 
19.
 
20.
net use X: \\SERVER\Freigabe 
21.
move %aktuellenummer%.xxx X: 
22.
 
23.
EXIT
wahrscheinlich wird es nicht funktionieren, aber es ist ne (einigermaßen) gute grundlage.

Tschau
B-Free
Bitte warten ..
Mitglied: sascha27283
21.08.2013, aktualisiert um 11:19 Uhr
Die Idee mit dem Namen ist zwar gut, aber leider darf dies nicht erfolgen. Die Dateinamen müssen personenunabhängig sein und nicht darauf hindeuten, von wem die Datei stammt. Zumindest nicht auf den ersten Blick.

Die Datei oder besser die Verknüpfung wird in den Autostart jedes Clients gelegt. Die Originaldatei befindet sich auf nem Serverlaufwerk. Dass sich zwei PCs genau gleichzeitig anmelden, halte ich für unwahrscheinlich.
Was meinst du mit Rücksicherung? Es handelt sich eigentlich nicht wirklich um ne Sicherung. Ich sags mal so, es werden Daten gesammelt, welche dann in das zentrale Verzeichnis verschoben werden sollen.

Achja die Dateien sollen nicht kopiert werden, sondern verschoben werden. Es soll also im Startordner keine Datei mehr zu finden sein, falls möglich. Ansonsten wird die Datei einfach immer überschrieben, was auch gehen würde. Aber falls möglich, sollte sie verschoben werden.

Grüße
Sascha
Bitte warten ..
Mitglied: B-free
21.08.2013 um 11:32 Uhr
na dann erstze "copy" durch "Move" :D

B-free
Bitte warten ..
Mitglied: bastla
21.08.2013 um 15:05 Uhr
Hallo sascha27283!
Die Dateinamen müssen personenunabhängig sein und nicht darauf hindeuten, von wem die Datei stammt.
Nur interessehalber (falls die gesammelten Dateien nicht auf einer FAT-Partition abgelegt werden) - was wird denn für
dir /x Sicherung_*.xxx
ausgegeben?

Grüße
bastla
Bitte warten ..
Mitglied: sascha27283
21.08.2013, aktualisiert um 15:33 Uhr
Ich weiss nicht, ob es das ist was du suchst, aber es wird das hier ausgegeben:

21.08.2013 15:08 122.098 SICHER~1.PCA Sicherung.xxx
1 Datei(en) 122.098 Bytes
0 Verzeichnis(se), 112.731.406.336 Bytes frei

@B-free

Dein Script funktioniert leider nicht. Ich verstehe das Script auch nicht ganz. Die Erstellung eines Ordners rename ist ja gar nicht gewünscht. Es soll lediglich die Datei verschoben werden und dabei geprüft werden, ob bereits eine Sicherung.xxx vorhanden ist. Falls ja, soll die zu kopierende Datei fortlaufend nummeriert werden (Sicherung_1.xxx). Das ist alles.
Gibt es noch weitere Vorschläge?
Bitte warten ..
Mitglied: bastla
21.08.2013 um 16:11 Uhr
Hallo sascha27283!

Sorry - eigentlich hatte ich
dir /q Sicherung_*.xxx
gemeint ...

Grüße
bastla
Bitte warten ..
Mitglied: sascha27283
21.08.2013 um 16:16 Uhr
dann kommt

21.08.2013 15:10 782.991 Domäne\meinbenutzername Sicherung.xxx
1 Datei(en) 782.991 Bytes
0 Verzeichnis(se), 112.729.751.552 Bytes frei
Bitte warten ..
Mitglied: bastla
21.08.2013, aktualisiert um 16:25 Uhr
Hallo sascha27283!
21.08.2013 15:10 782.991 Domäne\meinbenutzername Sicherung.xxx
Der Dateiname ist also tatsächlich "personenunabhängig" ...

Das Verschieben sollte sich (ungetestet) etwa so machen lassen:
01.
@echo off & setlocal 
02.
set "Quelle=C:\Programme\Sicherung\Sicherung.xxx" 
03.
set "Zielpfad=U:\......\Sicherungen" 
04.
 
05.
for %%i in ("%Quelle%") do ( 
06.
    set "Name=%%~ni" 
07.
    set "Ext=%%~xi" 
08.
09.
if not defined Name goto :eof 
10.
 
11.
set /a Nr=1 
12.
:Loop 
13.
set "Ziel=%Zielpfad%\%Name%_%Nr%%Ext%" 
14.
if not exist "%Ziel%" ( 
15.
    move "%Quelle%" "%Ziel%" 
16.
    goto :eof 
17.
18.
set /a Nr+=1 
19.
goto :Loop
Grüße
bastla
Bitte warten ..
Mitglied: sascha27283
21.08.2013, aktualisiert um 16:34 Uhr
Tausend Dank bastla, das funktioniert super Ich hab zwar keine Ahnung was das alles heisst, aber es geht
Die Angabe mit Domäne und Benutzername habe ich nur anonymisiert ;) da steht schon was drin. Genauso wie beim Format der Sicherung.xxx

Tausend Dank, Thread kann geschlossen werden
Bitte warten ..
Mitglied: pieh-ejdsch
21.08.2013, aktualisiert um 16:41 Uhr
moin Sascha,

Wenn die Daten/Backups sowieso anonymisiert auf der Kiste Gespeichert werden sollen und Du Dir da so Sicher bist es gibt nicht zwei PCs die sich genau gleichzeitig anmelden, dann nimm "Datum_Uhrzeit_Zufallszeichenfolge_Zufallszeichenfolge.EXT"

Damit hast Du Die Daten auch schön aufgereiht im Ordner abgelegt. ''Wozu überhaupt abzählen?''
20132208_065832_A5§78#_2Qc_Backup.bin 
20132208_065848_Sd0r+_ybm[_Backup.bin 
20132208_070103_lökajfg_8945ewn_Backup.Bin 
...
[edit] Oh doch schon zu spät.[/edit]

Gruß Phil
Bitte warten ..
Mitglied: sascha27283
21.08.2013 um 16:43 Uhr
Sicher kann man sich natürlich nicht sein, aber die Wahrscheinlichkeit dass sich jemand in der gleichen Sekunden anmeldet halte ich für gering.
Mit deinem Tipp allein hätte ich allerdings nichts anfangen können. Dennoch Danke für deine Mühe.
Bitte warten ..
Mitglied: bastla
21.08.2013 um 16:44 Uhr
Hallo sascha27283!
Die Angabe mit Domäne und Benutzername habe ich nur anonymisiert ;) da steht schon was drin.
Das meinte ich ja in Bezug auf "personenunabhängig" - es muss nicht der Rechner-/Benutzername im Dateinamen enthalten sein, um nachvollziehen zu können, von wem die Datei gespeichert wurde; demnach wäre es also eigentlich egal, ob der Name des Rechners oder Benutzers auch im Dateinamen auftaucht ...

Grüße
bastla
Bitte warten ..
Mitglied: bastla
21.08.2013 um 16:49 Uhr
@ PH
_Zufallszeichenfolge_Zufallszeichenfolge
... wobei in Batch
_%random%_%random%
handlicher ist und zusammen mit Datum und Uhrzeit wohl ausreichend sein sollte ...

Grüße
bastla
Bitte warten ..
Mitglied: 112778
21.08.2013, aktualisiert um 17:11 Uhr
Hi,

die Zeit könnte man bis auf die Hundertstelsekunde genau bestimmen. Ob dabei zwei oder mehr User diese Hundertstelsekunde genau treffen würden, wage ich mal zu bezweifeln. Allerdings: Ausgeschlossen ist das nicht.

Gruß
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch - Verzeichnisnamen mit Dateinamen vergleichen, wenn vorhanden eine .log-Datei kopieren und zu .txt umbenennen
gelöst Frage von BlattlausOGBatch & Shell9 Kommentare

Hallo, ich versuche gerade vergeblichst über die Google-Suche ein passendes Script für meine Anwendung zu finden, doch leider scheint ...

Batch & Shell
Mittels Batch Ordner umbenennen und Dateien kopieren
gelöst Frage von held.christophBatch & Shell12 Kommentare

Guten Tag allerseits Ich bin absoluter Leihe und konnte Dank mehr oder weniger grossen Suche in den Foren bereits ...

VB for Applications
Vbs - Datei wenn vorhanden (alle Laufwerke) umbenennen
gelöst Frage von aletriVB for Applications4 Kommentare

Set fso = CreateObject("Scripting.FileSystemObject") If fso.FileExists("C:\Dir\File.xxx") Then fso.MoveFile "C:\Dir\File.xxx" , "C:\Dir\File.xxx" ElseIf Not fso.FileExists("C:\Dir\File.xxx") Then End If Wie kann ...

Batch & Shell
Verzeichniss überwachen Datei kopieren und umbenennen
gelöst Frage von fischle63Batch & Shell6 Kommentare

Hallo, Habe folgendes Problem: In einem Verzeichniss sind Dateien mit dem Suffix ".nd" enthalten. Bsp. "00000010.nd" Ich brauche eine ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 21 StundenViren und Trojaner1 Kommentar

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 ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 4 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 5 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
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 ...

Windows 10
Probleme mit Dateien, deren Pfad + Dateiname länger als 256 Zeichen sind
Frage von FalaffelWindows 1011 Kommentare

Guten Tag, unter Windows 10 scheint es immer noch das Problem zu geben, dass der Pfad + Dateiname einer ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware10 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Microsoft Office
Outlook 2016 - Makro startet nicht über Knopf im Menüband
Frage von ZunarasMicrosoft Office9 Kommentare

Schönen guten Tag! ich brauche wieder einmal Hilfe. Ich möchte gerne von Office 2010 32bit auf 2016 64bit wechseln ...