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

Mehrere Dateien in ein Verzeichnis kopieren und Dateiendung ändern

Frage Entwicklung Batch & Shell

Mitglied: Oli82

Oli82 (Level 1) - Jetzt verbinden

02.01.2009, aktualisiert 04.01.2009, 9032 Aufrufe, 5 Kommentare

hallo.

Ich stehe vor folgendem Problem.

Eine Anwendug auf unserem Server erstellt täglich *.dat Dateien, die dann automatisiert umbenannt und in verschiedene externe Datenbanken geschrieben werden.
Da unser ISP aber derzeit ein wenig Probleme mit unserer Internetverbindung hat, kann es schon mal passieren, dass die Dateien nicht in die Datenbank geschrieben werden.

Wenn ich nun die Daten manuell in die Datenbank schreiben möchte, muss ich händisch alle Dateien über den Explorer zusammensuchen, umbenennen und erneut einfügen.

Die Dateien haben vor dem kopieren folgenden Dateinamen: Programmname-0000HEXID-JJJJMMTT.dat (Programmname-00003af0-20090102.dat).

Nach dem kopieren haben sie dann folgendes Format: Programmname-0000HEXID-JJJJMMTT.ZEITSTEMPELdesKOPIERENS.dat.backup (Programmname-00003af0-20090102.2009010214532614.dat.backup)

Da mir der händische Aufwand zu groß ist, würde ich mir gerne eine Batchdatei schreiben, die in dem Verzeichniss alle Dateien eines beliebingen, zusammenhängenden Datums und eines HEXID-Bereiches sucht und danach in ein anderes Verzeichniss kopiert.

Bsp:
Alles Dateien des 24.12.2008 im Bereich von Hex 2800 bis Hex 28af.
Am liebsten wäre mir ja eine Abfrage, welches Datum ich auswählen wollte. Den ID Bereich würde ich dann einfach über eine Textdatei definieren.
Umbenenen der Dateien stellt kein Problem da, nur halt das Filtern und kopieren.

Ist das mit einer Batchdatei möglich oder benötige ich doch eine höhere Programmiersprache?
Danke für die Hilfe.
Mitglied: NetWolf
03.01.2009 um 11:30 Uhr
Hallo,

ich würde einfach ein Synchronisier-Programm nehmen.

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)
Bitte warten ..
Mitglied: bastla
03.01.2009 um 23:54 Uhr
Hallo Oli82!

Schematisch könnte ein Batch etwa so aussehen:
01.
@echo off & setlocal 
02.
set /p "Datum=Bitte Datum in der Form JJJJMMTT eingeben: " 
03.
set "Von=2800" 
04.
set "Bis=28af" 
05.
set "Quelle=D:\dat-Ordner" 
06.
set "Sammel=D:\Sammelordner" 
07.
 
08.
pushd "%Quelle%" 
09.
for %%i in (*.dat.backup) do call :ProcessFile "%%i" 
10.
popd 
11.
goto :eof 
12.
 
13.
:ProcessFile 
14.
for /f "tokens=2-3 delims=-." %%a in (%1) do set "Hex=%%a" & set "Dat=%%b" 
15.
set Hex=%Hex:~-4% 
16.
 
17.
if "%Dat%" neq "%Datum%" goto :eof 
18.
if 0x%Hex% lss 0x%Von% goto :eof 
19.
if 0x%Hex% gtr 0x%Bis% goto :eof 
20.
 
21.
set "Ziel=%Sammel%\%Dat%-%Von%-%Bis%" 
22.
if not exist "%Ziel%" md "%Ziel%" 
23.
echo move %1 "%Ziel%\" 
24.
goto :eof
Das "echo" in Zeile 23 sorgt dafür, dass das Verschieben der Dateien (zum Testen) zunächst nur angezeigt wird - der Zielordner wird allerdings tatsächlich erstellt.

Wenn Du übrigens die Zeilen 2 und 17 weglässt (oder durch ein vorangestelltes REM auskommentierst) werden alle Dateien im angegebenen ID-Bereich in entsprechende (mit dem Datum gekennzeichnete) Ordner aufgeteilt.

Grüße
bastla
Bitte warten ..
Mitglied: Biber
04.01.2009 um 20:38 Uhr
<OT>
Übennenen der Dateien stellt kein Problem da, nur halt das Filtern und kopieren.
Hmm, das Benennen dieser Tätigkeit scheint aber auch leichte Schwierigkeiten zu machen, oder?

Ich frage jetzt nicht schon wieder, WTF denn bei diesem vollkommen tz- und ph-freien Wort so schwierig ist, sondern registriere es mal stillschweigend als 388ste Schreibvariante in diesem Forum.

Grüße und voller Erwartungen in das Jahr 2009
Biber
</OT>
Bitte warten ..
Mitglied: Oli82
04.01.2009 um 21:14 Uhr
@NetWolf

Welches Programm würdest du vorschlagen, dass diese Filter unterstützt?

@bastla
Dein Script werde ich morgen gleich mal testen.

Dank euch für die Hilfe!
Bitte warten ..
Mitglied: NetWolf
05.01.2009 um 13:52 Uhr
Hi Oli82,

für eine Synchronisation kannst du eigentlich jedes beliebige Programm verwenden.

Die Synchronisation läuft idR. über Datum/Zeit. Einige Programme bieten auch noch eine Prüf/Vergleichssumme an.

Das Handling und Feeling ist unterschiedlich. Daher ist es schwer da was zu empfehlen.

Ich persönlich arbeite mit der Explorer-Alternative Directory Opus. Da sind solche Dinge schon mit drin.


Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Powershell Kopiere Dateien in s Archiv Verzeichnis (6)

Frage von pixel0815 zum Thema Batch & Shell ...

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

Frage von pbelcl zum Thema Batch & Shell ...

Vmware
gelöst Dateien auf eine VM im EXSi kopieren (3)

Frage von Stefan007 zum Thema Vmware ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(2)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Netzwerkgrundlagen
Kann auf Freigabe nicht Zugreifen (19)

Frage von leon123 zum Thema Netzwerkgrundlagen ...

Windows Server
gelöst Neues KB für W10 1607 und W2K16 wieder mal nicht im WSUS 3.0, hat das noch jemand? (16)

Frage von departure69 zum Thema Windows Server ...

Windows Server
DC virtualisieren + wie sichern (SingleDC-Environment) (12)

Frage von KMUlife zum Thema Windows Server ...

Festplatten, SSD, Raid
RAID Controller mit Trim-Funktion, wie ermitteln (11)

Frage von pixel24 zum Thema Festplatten, SSD, Raid ...