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

Daten nach Datum suchen, Ordner mit dem Datum anlegen und Daten hineinkopieren.

Frage Entwicklung Batch & Shell

Mitglied: SWuser

SWuser (Level 1) - Jetzt verbinden

01.10.2009 um 11:31 Uhr, 6478 Aufrufe, 8 Kommentare

Hallo Community,
ich bin seit 2 Monaten Azubi zum IT-Kaufmann und soll nun ein kleines Batch-Programm schreiben. Leider habe ich davon fast überhaupt keine Ahnung.

Zu meinem Problem:

Es werden täglich zig automatische Druckaufträge als *.txt generiert in einem Ordner abgelegt, gedruckt und in eine *.dat-Datei umgewandelt (Zwecks Archivierung). Das ist alles schon in einem Batch-Programm so hinterlegt.
Nun sollen die *.dat-Dateien täglich in einen entsprechenden Monatsordner kopiert werden.
Das ist jetzt meine Aufgabe dieses zu programmieren.

Beispiel:

im Ordner X:\Etiketten\Drucker_01\ liegen
Eingang01.dat
Eingang02.dat
Eingang03.dat
Ausgang01.dat (usw)

im Ordner X:\Etiketten\Drucker_02\ liegen
Ausgang01.dat
Ausgang02.dat
Eingang01.dat
Eingang02.dat (usw)

es gibt dann noch viele andere Ordner!

alle sind unterschiedlich und haben ein unterschiedliches Datum.
nun sollen die *.dat-Dateien in ein extra Laufwerk\Ordner (Bsp.: Z:\Etiketten\Archiv\Drucker_01\Monat\) archiviert werden.

ich hoffe, ich konnte mein Problem gut erläutern und hoffe auf Denk- und/oder Lösungsansätze.

Vielen Dank im Vorraus!
Gruß Felix
Mitglied: manuel-r
01.10.2009 um 11:47 Uhr
Das geht ganz einfach mit xcopy und einem geplanten Task. Schreib dir eine Batch, die ungefähr so aussieht:
01.
setlocal 
02.
set erstelldat=%date:.=-% 
03.
xcopy <quelle> <ziel>\%erstelldat%\ /d:%erstelldat% /e /v /c /i /y
Ist ungetestet, sollte aber so hinhauen.

Manuel
Bitte warten ..
Mitglied: SWuser
01.10.2009 um 12:09 Uhr
Danke für die schnelle Antwort!

Das klappt noch nicht so ganz...:

Jetzt erstellt er mir zwar den Ordner mit einem Datum (das sieht auch schon ganz gut aus!), er nimmt aber das heutige Datum, er sollte aber das Datum nehmen, an dem die *.dat-Datei zuletzt geändert wurde. Kann man das irgendwie realisieren?
Bitte warten ..
Mitglied: manuel-r
01.10.2009 um 12:16 Uhr
Das verstehe ich jetzt nicht ganz.
Die Ausgangslage war doch, das über den ganzen Tag im Quellverzeichnis diverse Dateien erstellt werden. Am Ende des Tages sollen die dann zusätzlich in einen Archivordner kopiert werden. Jedoch nur die von heute.
Nehmen wir also an heute werden 20 Dateien im Quellverzeichnis erstellt oder geändert. Jetzt kommt heute Nacht um 23:50 der geplante Task und startet die Batch. Dann wird alles mit Datum von heute in einen Ordner mit Datum von heute kopiert.
Morgen Abend kommt der geplante Task nochmal und kopiert die Dateien von morgen, weil morgen heute ja gestern ist
Und so läuft das dann Tag für Tag.
Bitte warten ..
Mitglied: SWuser
01.10.2009 um 12:23 Uhr
Ja, an und für sich ist das ja richtig, was du schreibst.
So funktioniert das ja auch, außer das er mir die Dateien eines Monats immer in den gleichen Ordner schieben soll, sprich: nicht jeden Tag einen neuen Ordner erstellen soll.
Soweit klappt das ja schon super

Jetzt habe ich aber noch einen bzw zwei Ordner, in denen vorher noch nichts gelöscht, bzw wegkopiert wurde. D. h. die sind noch voller alter Dateien (deswegen fragte ich oben auch so pauschal )
Bitte warten ..
Mitglied: manuel-r
01.10.2009 um 12:34 Uhr
Ok, dann mach's halt so:
01.
setlocal 
02.
set erstelldat=%date:.=-% 
03.
set targetdat=%erstelldat:~3% 
04.
xcopy <quelle> <ziel>\%targetdat%\ /d:%erstelldat% /e /v /c /i /y
Mit dem ersten set wird in die Variable erstelldat das aktuelle Datum geschrieben und gleichzeitig Punkte durch Striche erstezt, weil xcopy das so erwartet. Mit dem zweiten set werden dann die ersten drei Zeichen (also Tag und Trennzeichen) entfernt und der Variable targetdat zugewiesen.
Um die schon älteren Datein zu behandeln schaust du dir einfach mal die Hilfe zu xcopy an und wozu der schalter /d dient.
Bitte warten ..
Mitglied: SWuser
01.10.2009 um 13:17 Uhr
Okay, danke

Ein kleines Problem habe ich dann noch:

Er kopiert mir jetzt nur Dateien vom Mai 2009, alle anderen bleiben unangetastet; diese kopiert er auch nur in den Ordner mit dem heutigen Datum.

Vielen Dank, ist echt super, dass du mir so viel hilfst!!
Bitte warten ..
Mitglied: Biber
01.10.2009 um 18:54 Uhr
Moin SWuser,

ich weiss es nicht, ob du den letzten Tipp von manuel-r als solchen wahrgenommen hast...
Um die schon älteren Datein zu behandeln schaust du dir einfach mal die Hilfe zu xcopy an und wozu der schalter /d dient.

Wenn du nun aber eventuell so fixiert auf die Erläuterung des Schalters /D wie /DeristBestimmtWichtig warst, dass du den Rest überlesen haben solltest:
Es gibt auch noch den nützlichen Schalter /L wie /LassMichErstmaGucken.
Damit kannst du dir für jede noch so abdrehte Xcopy-Parameter-Kombination erstmal am CMD-Prompt angucken, was denn OHNE diesen Schalter /L passieren würde.

Bitte schau in die XCopy-Hilfe, dann noch mal in meinen Kommentar, dann nochmal in die Hilfe und dann teste den Krams und poste danach die Fehlerursache.

Danke
Biber
Bitte warten ..
Mitglied: SWuser
02.10.2009 um 07:53 Uhr
Guten Morgen,

hatte es gestern nicht mehr geschafft zu schreiben,
aber: es hat alles so weit geklappt. Ist schon alles i.O.

Danke aber für die Hilfen!!
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
gelöst Mit VBA im Monatskalender Datum suchen - aus anderer Datei einfügen (6)

Frage von Otto1699 zum Thema VB for Applications ...

Batch & Shell
gelöst Datei in Ordner mit Batchdatei suchen und weiterverarbeiten (2)

Frage von MichaelWiggen zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

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