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
GELÖST

Batch Datei zum kopieren von Dateien

Frage Entwicklung Batch & Shell

Mitglied: Stebbone

Stebbone (Level 1) - Jetzt verbinden

24.07.2009, aktualisiert 18.10.2012, 5220 Aufrufe, 12 Kommentare

Ich komme bei diesem Prog. nicht weiter

Hallo liebe Profis =) ich bemüh mich eine Batch datei zu erstellen, welche Dateien in ein Archiv Verz. packt, das Erstellungsdatum an den Dateinamen anknüpft und sie anschließend in den richtigen "Monats" Ordner verschiebt.

Bsp.

in der Daten Quelle liegt folgende Datei: IAGEIS.123 diese kopiere ich in einen Archiv Ordner, daraus wird dann IAGEIS_2009.03.11.123
es wird also das Erstellungsdatum der Datei angehängt.
Ist dies getan, dann sollte die IAGEIS_2009.03.11.123 Datei noch in den richtigen Ordner verschoben werden.
Es sollten Ordner angelegt werden, für jeden Monat im Jahr, dabei sollte das Prog. auf das Erstelldatum der Datei achten und zB einen Ordner 200911 erstellen (jjjjmm) und alle Daten mit dem selben Monat dort hinein verschieben.

Ich bin bereits soweit, dass es das Erstelldatum an die Datei anhängt wird, jedoch nicht wie gewünscht, sondern im format : tt.mm.jjjj könnte mir viell. jmd. weiterhelfen wie ich dies in jjjj.mm.tt umschreibe? Und wie man die zugehörigen Ordner erstellt und die Dateien reinkopiert. Wär echt sehr nett.
Das ganze dient einer Archivierung, falls diese Angabe notwendig ist.

Hier mein Bisheriger Quellcode:
01.
@echo off & setlocal 
02.
set "Quelle=C:\SUBELKE\WIN-DFUE\EMPFANG.ARC" 
03.
set "Archiv=C:\SUBELKE\WIN-DFUE\ARCHIV\EMPFANG.ARC" 
04.
 
05.
if not exist "%Archiv%" md "%Archiv%" 
06.
for /f "skip=5 tokens=1,3*" %%i in ('dir /a-d /tw "%Quelle%\*.*"^|findstr /v "Datei(en) Verzeichnis(se),"') do copy "%Quelle%\%%k" "%Archiv%\%%~nk_%%i%%~xk">nul 
07.
 
08.
 
09.
set "Quelle2=C:\SUBELKE\WIN-DFUE\EMPFANG.HDR" 
10.
set "Archiv2=C:\SUBELKE\WIN-DFUE\ARCHIV\EMPFANG.HDR" 
11.
 
12.
if not exist "%Archiv2%" md "%Archiv2%" 
13.
for /f "skip=5 tokens=1,3*" %%i in ('dir /a-d /tw "%Quelle2%\*.*"^|findstr /v "Datei(en) Verzeichnis(se),"') do copy "%Quelle2%\%%k" "%Archiv2%\%%~nk_%%i%%~xk">nul
Es gibt um genauer zu sein 2 Quellordner
Komm echt nicht weiter und bin für jede Hilfe dankbar!
Vielen dank im Vorraus

MfG Stebbo


[Edit Biber] Code in Code-Tags gesetzt. [/Edit]
Mitglied: 60730
24.07.2009 um 09:54 Uhr
Servus,

schau dir dazu mal Bibers Anleitung Datum in Batch an.

Wobei ich dir zusätzlich empfehlen würde mit 7zip zu arbeiten, damit kriegst du fast jedes Archiv schön klein. (jpg/mp3 mal ausgeschlossen)

Gruß

edit:

jau nun hab ichs ganz gelesen und auch verstanden...
Bibers Anleitung ist das, was du suchst
Bitte warten ..
Mitglied: Stebbone
24.07.2009 um 10:04 Uhr
Vielen Dank für deine Antwort.

Die Anleitung ist ziemlich umfangreich wenn ich die gleiche mein wie du...mal schauen ob sie mir weiterhilft.
Ich darf leider ausschließlich mit cmd also mit der Eingabeaufforderung arbeiten. Und auf dem PC sind noch andere Anwendungen, welche mit Deutschem Datum arbeiten müssen, ich denke um dies anderst zu verwirklichen ist keine allzu große änderung in meinem Quelltext (siehe oben) notwendig. Habe schon einiges ausprobiert aber klappt warum auch immer bei mir nicht. Bin auch nicht wirklich gut darin.
Mit den Ordnern denke ich mir viell. dass ich das Datum auslese das jahr & Monat an eine VAriable übergebe %%~nI oder so und dann durch diese ein Ordner erstelle in einer FOR-Schleife oder so...hmmm aber mir fehlt dazu einfach das Wissen, kenne nur Grundbefehle, leider, viell. ändert sich dies ja durch Beiträge von euch =)
Bitte warten ..
Mitglied: Iwan
24.07.2009, aktualisiert 18.10.2012
hallo,

für das Umstellen des Datums hab ich hier im Forum eine Lösung gefunden und etwas verändert:
01.
for /f "tokens=1-4 delims=." %%i in ("%date%") do set "D=%%i" & set "M=%%j" & set "Y=%%k"
Ergebnis für 24.07.2009 = "D=24" & "M=07" &"Y=2009"
diese Variablen kannst du ja dann auch dafür nutzen, die Datei in den richtigen Ordner zu verschieben:
01.
REN IAGEIS.123 IAGEIS_%Y%.%M%.%D%.123 
02.
xcopy /v IAGEIS_%Y%.%M%.%D%.123 D:\%Y%\%M%\%D%\ 
Ergebnis wäre:
Datei "IAGEIS.123" wurde umbenannt in "IAGEIS_2009.07.24.123"
Datei wurde kopiert nach: D:\2009\07\24

hoffe das hilft
Bitte warten ..
Mitglied: Stebbone
24.07.2009 um 10:15 Uhr
Dankeschön, soweit schon, muss dies noch an meinen vorhandenen Quellcode anpassen & ein weiteres Problem ist, dass die DAteien ja nicht alle IAGEIS.123 heißen, sie bestehen aus beliebihvielezeichen.3zeichen , also als endung.
Und es soll ja nicht das Aktuelle Datum sondern das Erstelldatum der Datei angehängt werden.
Bin weiterhin am Testen
Bitte warten ..
Mitglied: Stebbone
24.07.2009 um 10:31 Uhr
Wäre es möglich, dass ihr eure Ideen an meinen Quelltext oben anpasst, weil ich damit immer sehr probleme hab oder ihn so umschreibt wie ihr es meint. Hoff dass ich mir nicht zuviel von euch erwarte....Danke =)
Bitte warten ..
Mitglied: 60730
24.07.2009 um 11:46 Uhr
Servus,

um dein Problem 1zu1 umzusetzen und das auch noch schön - brauchst einen der beiden Bs aus diesem Bereich.

Wobei es natürlich auch gefrickelt geht. - Aber im "B" Bereich frickelt es sich so schwer

wobei frickeln in meinen Augen bedeuten würde - erzeuge eine 2. Liste und anhand derer dann die "Zahlen" umdrehen und erst dann kopieren

Mit der obigen Abfrage hast du doch Dateiname und Erstellungsdatum.

Von daher wäre ein Lauf immer und immer wieder nicht notwendig - bzw sinnbefreit, wenn er öfters läuft und jemand zwischenzeitlich die datei geändert hätte - denn du fragst ja erstell nicht Änderungsdatum ab.

Von daher - denk bitte nochmal nach, ob dein Ziel wirklich den gewünschten Erfolg bietet.

Gruß
Bitte warten ..
Mitglied: Stebbone
24.07.2009 um 11:55 Uhr
Die Dateien kommen automatisiert übers Netzwerk in den PC. Es wird sicherlich niemand die DAteien ändern. Es kommen jeden Tag neue dazu und mit der Batch würde ich einfach gerne erreichen dass diese in den entsprechenden Ordner archiviert werden. Und ebenso der jeweilige Jahres&Monats Ordner (zur Übersicht) erstellt werden sollte. dass die bereits kopierten dateien nicht nochmal kopiert werden werde ich zum schluss anderst realisieren viell. das archiv Bit checken oder so. Ich verstehe nicht ganz was du mit "B" Bereich meinst.
Ein anderer lösungsweg wäre viell. eine .log datei zu erzeugen:
viell: dir /b *_*>Files.log
so aber ich weiß nicht genau wie das alles funktioniert...hmmm
Bitte warten ..
Mitglied: 60730
24.07.2009, aktualisiert 18.10.2012
Zitat von Stebbone:
Ich verstehe nicht ganz was du mit "B" Bereich meinst.
">Batch und Shell Moderator Biber - Chefschleifenschreiber Bastla

und yupp -das Archiv bit wäre auch mein nächster Kandidat gewesen, wenn es "so" laufen muß.

Aber nochmal - ich mach das alles mit 7zip - da lege ich mir Erstelldatum des Zip-originalPfad.zip an und dort sind dann die Dateien drin.

guckst du

Gruß
Bitte warten ..
Mitglied: rubberman
24.07.2009 um 12:51 Uhr
Würde etwa so an die Sache ran gehen: (Ungetestet!)
01.
@echo off & setlocal 
02.
set "Quelle=C:\SUBELKE\WIN-DFUE\EMPFANG.ARC" 
03.
set "Archiv=C:\SUBELKE\WIN-DFUE\ARCHIV\EMPFANG.ARC" 
04.
 
05.
if not exist "%Archiv%" md "%Archiv%" 
06.
pushd "%Quelle%" 
07.
for /f "skip=5 tokens=1,3*" %%i in ('dir /a-d /tc *.*^|findstr /b /c:" " /v') do set "Xdate=%%i" &set "Xnameext=%%k" &set "Xname=%%~nk" &set "Xext=%%~xk" &call :sub 
08.
popd 
09.
 
10.
 
11.
set "Quelle=C:\SUBELKE\WIN-DFUE\EMPFANG.HDR" 
12.
set "Archiv=C:\SUBELKE\WIN-DFUE\ARCHIV\EMPFANG.HDR" 
13.
 
14.
if not exist "%Archiv%" md "%Archiv%" 
15.
pushd "%Quelle%" 
16.
for /f "skip=5 tokens=1,3*" %%i in ('dir /a-d /tc *.*^|findstr /b /c:" " /v') do set "Xdate=%%i" &set "Xnameext=%%k" &set "Xname=%%~nk" &set "Xext=%%~xk" &call :sub 
17.
popd 
18.
 
19.
pause 
20.
goto :eof 
21.
 
22.
:sub 
23.
set "tt=%Xdate:~0,2%" 
24.
set "mm=%Xdate:~3,2%" 
25.
set "jjjj=%Xdate:~-4%" 
26.
if not exist "%Archiv%\%jjjj%%mm%" md "%Archiv%\%jjjj%%mm%" 
27.
copy "%Quelle%\%Xnameext%" "%Archiv%\%jjjj%%mm%\%Xname%_%jjjj%.%mm%.%tt%%Xext%">nul 
28.
goto :eof
Behalte die Variablennamen Quelle und Archiv bei, um die Subroutine für beide Verzeichnisse zu nutzen. Übrigens: Erstellungsdatum mit Parameter /tc !

<edit> überflüssige "do"s und Apostrophe entfernt </edit>
Bitte warten ..
Mitglied: Stebbone
24.07.2009 um 13:02 Uhr
wow sieht ja schon einmal ganz gut aus, vielen Dank, jedoch bringt er ein fehler bei dem do Befehl, werde dies versuchen zu lösen...
Bitte warten ..
Mitglied: rubberman
24.07.2009 um 13:34 Uhr
Ein Apostroph zu viel, ich ändere oben.
Bitte warten ..
Mitglied: Stebbone
27.07.2009 um 08:28 Uhr
Das ist genau das was ich gesucht habe, vielen Dank hat mir sehr weitergeholfen! Gruß Stebbone
Bitte warten ..
Ähnliche Inhalte
Windows 7
Kopieren was in einer Datei steht (Batch-Datei)
Frage von helmuthelmut2000Windows 71 Kommentar

Hallo, Ich möchte folgendes machen, aber weis nicht genau wie ich das hinbekomme. Ich habe eine Text-Datei wo folgendes ...

Batch & Shell
Batch: Loop zum kopieren von Dateien
gelöst Frage von BiffBaffBatch & Shell1 Kommentar

Hallo zusammen, leider bin ich nicht sehr vertraut mit dem erstellen von Batch dateien daher mag die Frage vielleicht ...

Batch & Shell
Batch Datei Kopieren
gelöst Frage von FragerBatch & Shell17 Kommentare

Hallo Zusammen, ich bekomme es nicht hin ich muss aus einem Ordner (liegt auf einem Server) eine von vielen ...

Batch & Shell
Batch - Kopieren von Dateien in Userhome
gelöst Frage von BellociBatch & Shell2 Kommentare

Hallo liebe Admins, ich würde sehr gerne einige Dateien unterschiedlichster Form (txt, html, wahrscheinlich in der Zukunft wachsend) in ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 12 StundenWindows 101 Kommentar

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 13 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 1 TagInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 1 TagDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte16 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...

Windows Server
GPO nur für bestimmte Computer
Frage von Leo-leWindows Server13 Kommentare

Hallo Forum, gern würde ich ein Robocopy script per Bat an eine GPO hängen. Wichtig wäre aber dort der ...

Windows Server
KMS Facts for Client configuration
Frage von winlinWindows Server13 Kommentare

Hey Leute, wir haben in unserem Netz nun einen neuen KMS Server. Haben Bestands-VMs die noch nicht aktiviert sind. ...

Windows Tools
Software-Tool zum Entfernen von bösartigem Windows
Frage von emeriksWindows Tools11 Kommentare

Hi, siehe Betreff hat das jemals irgendjemand schonmal sinnvoll eingesetzt? (MRT) E.