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

Per Batch Ordnername auslesen und an richtigen Ort verschieben

Frage Entwicklung Batch & Shell

Mitglied: Ohop3n

Ohop3n (Level 1) - Jetzt verbinden

17.10.2014, aktualisiert 20.10.2014, 971 Aufrufe, 4 Kommentare

Hallo Leute

Ich bin neu hier und bräuchte mal eure Hilfe.
Es geht um eine automatisierte Datensicherung von USB Sticks auf ein Server Laufwerk.
Nun sortiere ich bereits mit einem anderen Tool (Order in my Folder) meine Logfiles in Ordner, welche nach Jahr/Monat sortiert sind. Nun möchte ich ein automatisches verschieben auf den Server realisieren, welcher dann die Ordner an den richtigen Ort verschiebt. Die Daten in den Ordner sind vom Namen her einmalig.

Ordnerstruktur USB (nach Sortierung von OimF):
F:\Daten\2014-1
F:\Daten\2014-2
F:\Daten\2014-3
....
usw. bis 12

Es sind aber nur die Order vorhanden, wo auch von dem jeweiligen Jahr/Monat Daten vorhanden sind.
Je nach Die Jahreszahl wird sich natürlich jedes Jahr erhöhen.


Ordnerstruktur auf Server:
K:\Daten\2014\2014-1
K:\Daten\2014\2014-2
K:\Daten\2014\2014-3
...
usw. bis 12


Es sind aber nur die Order vorhanden, wo auch von dem jeweiligen Jahr/Monat Daten vorhanden sind.
Ordner K:\Daten\201x\ müsste je nachdem erstellt werden falls nicht vorhanden.

Die Batch sollte im Grunde diese Aufgabe haben:
Jahreszahl von Ordername auf USB auslesen und nach Server ins richtige Jahresverzeichnis verschieben.
Sollte eine Datei bereits vorhanden sein, Überschreiben ohne nachfrage.
Sollte ein Ordner nicht vorhanden sein, erstellen.
Das ganze läuft auf Windows 7.
Falls andere Ordner mit anderem Namen in F.\Daten\ sind, sollten diese ignoriert werden.

Ich hoffe ihr könnt mir bei meinem kleinen Problem weiterhelfen

Gruss
Ohop3n

Mitglied: colinardo
LÖSUNG 17.10.2014, aktualisiert 20.10.2014
Hallo Ohop3n,
könntest du hiermit machen:
01.
@echo off & setlocal ENABLEDELAYEDEXPANSION 
02.
set "quelle=F:\Daten" 
03.
set "ziel=K:\Daten" 
04.
for /d %%a in ("%quelle%\????-?*") DO @( 
05.
  set "year=%%~nxa" 
06.
  set "year=!year:~0,4! 
07.
  robocopy "%%a" "%ziel%\!year!\%%~nxa" * /e /MOVE /R:3 /W:1 
08.
)
Grüße Uwe
Bitte warten ..
Mitglied: Ohop3n
17.10.2014 um 16:11 Uhr
Vielen Dank für deine Antwort colinardo!

Leider ist es nicht das was ich mir vorstelle. Oder ich habe es falsch genutzt ^^. Bei ???? trage ich doch das Jahr ein?! Dies funktioniert dann aber nur wenn ich Jahr-Monat eintrage. jedoch sollte es, wenn möglich, das Jahr selber erkennen und den Monat dahinter ignorieren. Zudem kopiert es den Ordner nur anstatt zu verschieben und er landet dann nicht im Jahresordner auf dem Server.

Es sollte automatisch das Jahr im Ordnernamen erkennen und somit in den entsprechenden Ordner in den selben Jahres-Ordner verschieben. Soll zum Beispiel heissen:
[auf USB vorhanden] Ordner 2013-9, 2013-11, 2014-2, 2014-5 und 2015-1
[auf Server vorhanden] Ordner 2013 & 2014. Ordner 2015 noch nicht vorhanden.

Ausführen der Batch:
Batch sucht nach Ordner 20xx. Bindestrich und Monat wird ignoriert.
Nun sollen alle Ordner 2013-x in den Ordner 2013 auf dem Server verschoben werden.
Das selbe mit 2014-x nach Ordner 2014 auf Server.
Da der Ordner 2015 auf dem Server noch nicht existiert, soll dieser erstellt werden und die Daten von 2015-x in den nun erstellen Ordner verschoben werden.
Sobald dann kein Ordner mehr mit Jahreszahl vorhanden ist, soll das Script sich beenden.

Hoffe man kann trotzdem noch eine Lösung für mein kleines (Grosses?) Problem finden.

Gruss Ohop3n
Bitte warten ..
Mitglied: colinardo
17.10.2014, aktualisiert um 17:47 Uhr
Hallo Ohop3n,
sorry für den kleinen Schnitzer, das hatte ich auf die Schnelle übersehen, habe es oben entsprechend korrigiert, du musst nichts mehr anpassen (auch nicht die Fragezeichen), wenn die Pfadangaben die du hier verwendet hast stimmen. Das kopieren hatte ich nur zur Sicherheit für deine Tests erst mal eingebaut ...jetzt verschiebt es die Dateien.

Grüße Uwe

p.s. wenn du es auch mal mit Powershell versuchen willst, dies hier macht das selbe
01.
$quelle = F:\Daten' 
02.
$ziel = 'K:\Daten' 
03.
dir $quelle | ?{$_.PSIsContainer -and $_.Name -match '^(\d{4})-\d{1,2}$'} | %{copy-item -Path $_.FullName -Destination "$ziel\$($matches[1])\$($_.Name)" -Recurse -Force ; remove-item $_.FullName -Recurse -Force}
Bitte warten ..
Mitglied: Ohop3n
20.10.2014 um 11:34 Uhr
Vielen Dank!!!

Es funktioniert genau so, ,wie ich es mir vorgestellt habe! Danke nochmals dafür.
Dies erspart mir eine menge Arbeit.

Grüsse
Roger
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell Ordnername auslesen und verwenden
gelöst Frage von zamsi7Batch & Shell3 Kommentare

Hallo an alle, hoffe ich bin hier richtig und jemand kann mir helfen :) Ich möchte eine cert Datei ...

Batch & Shell
Script Dateiinhalt auslesen und verschieben oder kopieren Batch
gelöst Frage von Slater55Batch & Shell6 Kommentare

Hallo, ich benötige Hilfe zum Thema Scripten. Ich habe folgendes Problem. Wir nutzen in unserer Firma (mit 4 Töchterfirmen) ...

Batch & Shell
Per Batch Dateien in Ordner mit bestimmter Zahl im Ordnernamen verschieben.
gelöst Frage von fiedelioBatch & Shell4 Kommentare

Hallo zusammen, ich bin neu hier im Forum und möchte gerne bei folgendem um Hilfe bitten: Ich versuche per ...

Batch & Shell
Mehrere Ordnernamen auslesen und in eine Variable schreiben
gelöst Frage von schmithoBatch & Shell5 Kommentare

Hallo zusammen, ich versuche verzweifelt eine Lösung eines Problems zu finden, wie ich den Namen mehrere Ordner in eine ...

Neue Wissensbeiträge
Windows 10

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

Tipp von kgborn vor 1 TagWindows 106 Kommentare

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 1 TagSicherheits-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 2 TagenInternet5 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 2 TagenDSL, VDSL2 Kommentare

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

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
Frage von HelloWorldBatch & Shell16 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Router & Routing
OpenWRT bzw. L.E.D.E auf Buffalo WZR-HP-AG300H - update
gelöst Frage von EpigeneseRouter & Routing11 Kommentare

Guten Tag, ich habe auf einem Buffalo WZR-HP-AG300H die alternative Firmware vom L.E.D.E Projekt geflasht. Ich bin es von ...

Windows Server
Ping auf einen bestimmten Server nicht möglich
gelöst Frage von a.thierWindows Server7 Kommentare

Hallo, ich habe folgendes Problem. srv-dc1: Ping srv-nav > geht Ping srv-exchange > geht nicht srv-exchange: Ping srv-dc1 > ...

Hardware
Fujitsu Workstation mit K80 und Quadro P5000, Fehlermeldung: Connect Power Adapter
Frage von MachelloHardware7 Kommentare

Hallo Zusammen, ich benötige euren Rat da ich ratlos bin. Folgende Konfiguration im Büro: Fujitsu Workstation Celcius R940 Power ...