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

per Batch Dateien kopieren, umbenennen und nur die kopierten aus dem Ursprungsverzeichnis verschieben

Frage Entwicklung Batch & Shell

Mitglied: vincy69

vincy69 (Level 1) - Jetzt verbinden

28.06.2007, aktualisiert 14:53 Uhr, 18836 Aufrufe, 5 Kommentare

Hallo,

ich habe nun schon längere Zeit auf der Seite nach Lösungen für mein Problem gesucht aber leider nichts passendes gefunden.

Eine Applikation erstellt unregelmäßig eine .DAT Datei in ein Verzeichnis im Netzwerk.

Diese DAT Datei soll auf ein anderes Netzlaufwerk kopiert werden und dort die Dateierweiterung auf TXT geändert werden.

Wenn dies erledigt ist sollen nur die Dateien die vorher auch kopiert wurden in ein drittes Verzeichnis (Archiv) verschoben werden.

Mein Ansatz sieht bisher folgendermassen aus:


copy D:\zzz\*.dat D:\yyy

rename D:\yyy\*.dat *.txt

if %errorlevel% equ 0 move d:\zzz\*.dat d:\xxx


Das Problem ist nur, dass im letzten Schritt auch Dateien verschoben werden die während des Kopier- /Umbenennungsvorgang in das Ursprungsverzeichnis zugefügt wurden.

Meine Frage jetzt:

Wie kann ich das mit einfachen 'Bordmitteln' lösen?
Mitglied: bastla
28.06.2007 um 11:22 Uhr
Hallo vincy69 und willkommen im Forum!

Wie wäre es mit folgender Strategie:
  • Verschiebe alle *.dat aus D:\zzz nach D:\DatTemp
  • Kopiere alle *.dat in D:\DatTemp mit gleichzeitigem Umbenennen nach D:\yyy (copy *.dat D:\yyy\*.txt)
  • Verschiebe alle *.dat aus D:\DatTemp nach D:\xxx

Durch das Zwischenschalten des "DatTemp"-Verzeichnisses könntest Du die Vorgänge zeitlich "entkoppeln".

Grüße
bastla
Bitte warten ..
Mitglied: vincy69
28.06.2007 um 11:43 Uhr
Ersteinmal vielen Dank für die prompte Antwort.

Das Problem hierbei ist nur, dass auch während des Verschiebens neue Dateien in das Ursprungsverzeichnis D:\zzz hineingeschrieben werden können, die vom move Befehl während der Erstellung einfach unvollständig mitverschoben werden und damit das Erstellungsprogramm zum Absturz bringen (file not found).
Bitte warten ..
Mitglied: bastla
28.06.2007 um 12:18 Uhr
Hallo vincy69!

Wenn Du beim Kopieren keine unvollständigen Zieldateien erhältst, könntest Du mit
01.
xcopy /m "D:\zzz\*.dat" D:\yyy\
die kopierten Dateien mit einem zurückgesetzten Archiv-Attribut kennzeichnen und zum Abschluss der ganzen Aktion mit
01.
for /f "delims=" %%i in ('dir /b /a-a "D:\zzz\*.dat"') do del "%%~fi"
die vorher kopierten Dateien löschen.

Ansonsten müsstest Du beim Erstellungsprogramm ansetzen und etwa mit einem "Token" arbeiten, indem das Programm vor dem Erstellen überprüft, ob zB eine Datei "Locked.txt" (welche vom Kopier-/Verschiebe-Batch gesetzt und wieder gelöscht werden muss) vorhanden ist und falls ja, solange in einer Warteschleife läuft, bis "Locked.txt" wieder gelöscht wurde.

Grüße
bastla
Bitte warten ..
Mitglied: onegasee59
28.06.2007 um 14:10 Uhr
Hallo,
Das Problem ist nur, dass im letzten Schritt auch Dateien verschoben werden die
während des Kopier- /Umbenennungsvorgang in das Ursprungsverzeichnis zugefügt
wurden.
Und wenn du D:\zzz\*.dat immer zuerst in ein temporäres Verzeichnis D:\temp\zzz kopierst und damit weiterarbeitest? Also auch für den rename und move-Aktion nicht D:\yyy sondern D:\temp\zzz benutzt. Am Schluß löscht Du den Inhalt von D:\temp\zzz. So können in der Zwischenzeit in D:\zzz\*.dat hinzugefügte Daten nicht stören. Die werden dann beim nächsten Durchlauf erfasst.

gruß
Bitte warten ..
Mitglied: vincy69
28.06.2007 um 14:53 Uhr
Vielen Dank für die guten Ideen.

Ich habe nun folgenden Lösungsweg eingeschlagen:


xcopy /m "D:\zzz\*.dat" D:\yyy

rename D:\yyy\*.dat *.txt


Die Dateien bleiben dann zwar im Ursprungsverzeichnis stehen werden vom Batch beim nächsten Lafuf aber nicht mehr angefasst.

Löschen der Dateien macht dann einmal täglich ein anderer Batch.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Per Batch Dateien in einen Ordner - ext. Festplatte übertragen (2)

Frage von tocksick zum Thema Batch & Shell ...

Batch & Shell
Dateien kopieren die nicht mehr verändert werden? (10)

Frage von pbelcl zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...