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

Eigene Dateien und Ordner, die nicht genau benannt werden können per Batch-Befehl verschieben

Frage Entwicklung Batch & Shell

Mitglied: kohlfurther

kohlfurther (Level 1) - Jetzt verbinden

29.03.2013 um 16:47 Uhr, 2079 Aufrufe, 16 Kommentare

Hallo zusammen!

Ich beginne gerade damit mich mit dem Feld der "einfachen Batch-Programmierung" zu beschäftigen.

Ich arbeite im "First-Level-Support Computer und Netze" in einer grossen Verwaltung, und betreue dort die Endnutzer an Ihren Arbeitsplätzen... derzeit noch WinXP über Windows-Terminalserver-Technik...
Unsere administrativen Möglichkeiten sind begrenzt, da wir für die Software-Entwicklung eine eigene Behörde betreiben!

Trotzdem ist es ab und an hilfreich kleine Programme zu schreiben, die meist mit Datei-Verwaltung und -Ablageorten in Zusammenhang stehen!

Daher heute hier meine erste Frage zum Thema "Einstieg in die Batch-Programmierung"!

Ich freue mich darauf, hier Hilfe zu erhalten!

Unseren Nutzern steht jeweils ein Teilbereich von einem Fileserver (sogenanntes "Heimat-Laufwerk" als Netzlaufwerk eingebunden)zu, auf dem der jeweilige Nutzer die Möglichkeit hat eigene Dateien zu speichern.
Ausserdem werden hier Systemdateien und -ordner abgelegt, die für Programme seines eigenen Benutzerprofils erforderlich sind! Diese werden automatisch systemseitig angelegt und mit den erforderlichen Daten gefüllt!

Eine Reihe von Nutzern hat aktuell ein "neues Heimatlaufwerk" erhalten...
Die Daten des "alten Heimatlaufwerks" sind nun in einem Unterverzeichnis des "neuen Heimatlaufwerks" gespeichert!

Ich möchte den Nutzern nun die Möglichkeit bieten, die persönlichen Dateien und Unterordner, die Sie im "alten Heimatlaufwerk" abgelegt haben recht einfach auf das "neue Heimatlaufwerk" zu verschieben...

Möglich wäre das doch über den XCOPY-Befehl in einer Batch-Datei?!

Problem hierbei ist jedoch, dass die Ablage der persönlichen Dateien und Ordner ohne festgeschriebene Struktur erfolgen kann und meist erfolgt ist, so dass KEIN namensgleicher Unterordner auf dem "alten Heimatlaufwerk" bestehen muss bzw. besteht in dem alle persönlichen Daten abgelegt wären, den man in einer Batchdatei benennen könnte...

Weiter ist zu bedenken, dass es bezogen auf die Systemdateien auf altem und neuem Heimatlaufwerk identische Ordner und Dateien gibt, von denen jeweils die Ordner und Dateien vom nun neuen Heimatlaufwerk erhalten bleiben müssen!

Kurz gesagt:
Ich suche eine Möglichkeit, NUR die persönlichen Dateien und Unterordner zu verschieben!

MEINE ERSTE IDEE:
Ich möchte den Batch-Befehl "XCOPY /d" (ohne Angabe eines Datums) verwenden!

Dadurch sollten zunächst einmal die Systemdateien und -ordner vom alten Heimatlaufwerk (Quelle) NICHT verschoben werden, da die namensgleichen Systemdateien und -ordner auf dem neuen Heimatlaufwerk (Ziel) neuerem Datums sein müssten (dies habe ich noch nicht geprüft; müsste aber so sein)!
Ausserdem sollten alle vom Nutzer selbst erstellten Dateien und Ordner vom alten Heimatlaufwerk (Quelle) ins neue Heimatlaufwerk (Ziel) verschoben werden können, da diese im "Ziel" noch nicht vorhanden sind und damit nicht neuerem Datums sein können!


Nun aber meine Frage an die Community hier:
Ist das ein praktikabeler Ansatz oder habe ich einen Denkfehler?
Bzw. gibt es eine bessere Alternative für das was ich vor habe?

Dabei muss ich nochmal betonen, dass ich nur eingeschränkte administrative Rechte am System habe und daher wahrscheinlich lediglich über "Batch-Programme" zum Ziel kommen kann!

Nun bin ich gespannt, ob ihr Ideen habt und ob ich diese umsetzen kann...
Vielen Dank vorab für euere Mühen...

LG vom
Kohlfurther
Mitglied: ThePinky777
29.03.2013, aktualisiert um 16:53 Uhr
schau dir mal das Tool ROBOCOPY.exe an, eventuell bietet das Möglichkeiten die dich weiterbringen.
einfach mal googel´n
Bitte warten ..
Mitglied: kohlfurther
29.03.2013 um 18:09 Uhr
Hallo Pinky...

...danke für deine schnelle Antwort!
Ich werde mir das Programm mal am heimischen Rechner anschauen und ein bisschen ausprobieren...

Allerdings befürchte ich, dass ich das so am Arbeitsplatz nicht einrichten kann, weil mir bzw. uns auch Installationsrechte fehlen bzw. ein selbstständiges Verwenden einer EXE-Datei auf unserem System nicht gewollt ist und auch zu Problemen und Nachfragen führen kann...

Daher meine Idee, das über Batch umzusetzen, weil die Ausführung dieser Dateien toleriert wird...
Bei wirklichen Anwendungen sieht das anders aus... LEIDER... (

Trotzdem zunächst danke schön... :D

Ansonsten:
Weitere Ideen hier?

LG
Kohlfurther
Bitte warten ..
Mitglied: Endoro
29.03.2013 um 20:16 Uhr
Hallo kohlfurther,

ehrlich gesagt weiss ich nicht wie man "Dateien und Ordner, die nicht genau benannt werden können per Batch-Befehl verschieben" kann. Wie machst du es denn manuell?



bb
Bitte warten ..
Mitglied: kohlfurther
31.03.2013 um 12:25 Uhr
Guten Morgen :D

Wie schon beschrieben ist eben das Hauptproblem, dass es in unserer Verwaltung keine Regelung gibt, die zum Beispiel aussagt, dass private bzw. eigene Dateien auf dem Heimatlaufwerk in einen bestimmten Unterordner gespeichert werden können...

Wenn es per Automation nicht funktioniert, muss sich halt jeder Nutzer selbst ansehen, welche alten Daten er auf sein neues Laufwerk "mitnehmen" will und die Dateien einfach selbst händisch über den Windows-Explorer verschieben!
Der Nutzer selbst weiss ja, welche Ordner und Dateien seine eigenen sind...

Unsere/meine Idee war halt, dem Nutzer diese Aufgabe abzunehmen und einfach alle seine Dateien automatisch zu verschieben bzw. zu kopieren... deshalb ja meine anfängliche Idee mit dem Befehl "XCOPY /d" ohne Angabe eines Datums... ;))

Ich dachte quasi auch an eine Art der "Vergleich der existierenden Dateien und Unterordner" auf altem Heimatlaufwerk und neuem Heimatlaufwerk...
Wenn dann ermittelt ist, welche Dateien und Unterordner auf dem neuen Heimatlaufwerk schon bestehen (namens- und inhaltsgleich sind), könnte das Batch-Programm die fehlenden Dateien und Ordner (die dann die vom Nutzer eingerichteten und gespeicherten Daten sind) ins Ziel (neues Heimatlaufwerk) kopieren und anschließend in der Quelle löschen - sprich Verschieben!

Ich freue mich weiter auf Einträge zu meiner Frage und gebe noch nicht auf ;))
Vielen Dank im Voraus...
LG Kohlfurther
Bitte warten ..
Mitglied: Endoro
31.03.2013 um 20:22 Uhr
Hallo kohlfurther,

Xcopy also. Hast du noch weitere Ideen (Skriptansatz)?
Sonst versuch es doch einfach mit
01.
xcopy /d /s /l "quellordner" "zielordner"
Der Parameter "/l" sorgt dafür, dass noch nichts kopiert wird, sondern Xcopy zeigt nur an, was es kopieren würde.


Frohe Ostern & bb
Bitte warten ..
Mitglied: bastla
31.03.2013 um 21:12 Uhr
... wobei sich vielleicht eine etwas umfangreichere Auswahl an "xcopy"-Optionen anbieten würde:
xcopy /dehkry /l "quellordner" "zielordner"
Grüße
bastla
Bitte warten ..
Mitglied: kohlfurther
01.04.2013 um 16:04 Uhr
Zunächst einmal herzlichen Dank für die Hinweise zum Befehl "XCOPY"...
Ich werde mal schauen, dass ich morgen dazu komme im Büro eine erste Version der Datei zu schreiben und dann hier berichten, ob es zum gewünschten Ergebnis geführt hat...

VIELEN DANK vorab für eure Hinweise und Mühen...
LG und frohen Oster-Montag noch...
Kohlfurther
Bitte warten ..
Mitglied: ThePinky777
02.04.2013 um 18:08 Uhr
Zitat von kohlfurther:
Zunächst einmal herzlichen Dank für die Hinweise zum Befehl "XCOPY"...
Ich werde mal schauen, dass ich morgen dazu komme im Büro eine erste Version der Datei zu schreiben und dann hier berichten,
ob es zum gewünschten Ergebnis geführt hat...

VIELEN DANK vorab für eure Hinweise und Mühen...
LG und frohen Oster-Montag noch...
Kohlfurther

Das Robocopy.exe musst du nicht installieren, kann man einfach irgendwo ablegen wo man halt rechte hat und dann mit
c:\robocopy.exe parameter....
ausführen.

Ist mächtiger wie xcopy, bei uns in der firma wird das zum synchronisieren von daten zwischen servern verwendet.
wie gesagt schaus dir mal an, und installieren muss man da nix.
Bitte warten ..
Mitglied: kohlfurther
04.04.2013 um 20:20 Uhr
Hallo nochmal in die Runde...

@ThePinky:
Danke nochmal fürs Werbung machen in Sachen "Robocoy"... war mir so nicht bewusst, dass ich es einfach ohne Installation ablegen kann... habs dann heute auch mal im Netzwerk abgelegt UND ZEIT gefunden, mich damit zu beschäftigen... :D

UND TATSÄCHLICH: Super Tool...
Hab es nach ein paar Versuchen mit den (scheinbar) richtigen Parametern geschafft...

@all:
Morgen wird dann noch bei ein, zwei Kollegen getestet und dann spätestens am kommenden Montag verteilt... ;))

Geklappt hat es jetzt mit dieser Syntax:
robocopy [Quelle] [Ziel] /E /XO

Kopiert ins Ziel werden nun grds. alle Verzeichnisse und Dateien!
Ausgenommen nur Dateien und Ordner die bereits NEU ANGELEGT wurden im Ziel...
UND ausgenommen, die Dateien, die bereits mit neuerem Datum im Ziel liegen!

Nun werde ich morgen noch eine weitere Zeile in die Batch-Datei einbauen, die nach dem erfolgreichen Kopiervorgang die [Quelle] löscht... :D
Hab noch Bedenken, dass direkt mit dem Parameter "/MOVE" zu machen!
UND DANN IST ES VOLLBRACHT...

GROSSEN DANK an alle die hier fleißig geschrieben haben!
Wenn der Test morgen erfolgreich verläuft, markier ich den Beitrag noch als "gelöst"...

Wenn ihr noch Verbesserungsvorschläge habt; immer her damit... ;))

Vielleicht hat noch jemand eine Idee, ob es sinnig ist [Quelle] und [Ziel] nach dem Kopiervorgang noch zu "vergleichen" um sicher sein zu können, dass nur die gewollten Dateien kopiert worden sind!
Ne Idee, wie so was noch reingebracht werden könnte?

LG an die Community...
Kohlfurther
Bitte warten ..
Mitglied: ThePinky777
05.04.2013, aktualisiert um 08:37 Uhr
Also du kannst generell ein Log File erzeugen unter DOS in dem man das so schreibt
BEFEHLSZEILE >>"C:\log.txt"

das kannst du auch mit Robocopy (musst dann aber bei robocopy nen Parameter hinhängen - No Progressbar - sonst siehts schrottig aus) machen, ergo hast du dann ein Log File.

Tja und nun wirds komplex, man könnte dann unter VBS Script z.B. das Logfile öffnen lassen und nach irgendwelchen Zeichenketten suchen, die indizien für Fehler sind, und anschließend das VBS Script irgendwas machen lassen wie z.B. ne email versenden mit error warnung oder ein erneutes File erzeugen... wie auch immer.

aber dazu muss man sich dann schon ganz schön reinhängen in die script sprache.

Out of the Box fällt mir mal nix ein.
Bitte warten ..
Mitglied: bastla
05.04.2013 um 12:08 Uhr
@ ThePinky777
man könnte dann unter VBS Script z.B. das Logfile öffnen lassen und nach irgendwelchen Zeichenketten suchen, die indizien für Fehler sind
Dafür tut's zur Not auch "findstr", und per CMD eine Mail mit "blat" verschicken ist auch kein Hexenwerk ...

Grüße
bastla
Bitte warten ..
Mitglied: ThePinky777
05.04.2013 um 15:30 Uhr
hast recht, ich denk schon garnicht mehr so einfach hehe

ich persöhnlich hab mir mal VBS Script geschrieben was source und destination dir dynamisch auf anzahl der Verzeichnisse und Dateien vergleicht geschrieben. die Lösung schwirrte da bei mir im kopf rum.

aber ja findstr.exe (auch wie robocopy downloadbar und verwendbar) sollte den job auch erledigen.
und mit blat.exe kann man die mail verschicken, auch downloadbar und man muss nix installieren.

aber damit mail verschicken geht muss euer emailserver auch erlauben das ein client sich "unauthifiziert" connecten darf und ne mail schicken, normalerweise wird das restriktiv gehandhabt in unternehmen und ist nich selbstverständlich das es geht. sei dazu erwähnt.
Bitte warten ..
Mitglied: bastla
05.04.2013 um 18:37 Uhr
@ ThePinky777
findstr.exe (auch wie robocopy downloadbar
Noch nicht mal das - ist bereits in CMD verfügbar.

Grüße
bastla
Bitte warten ..
Mitglied: ThePinky777
09.04.2013 um 09:12 Uhr
ok wieder was gelernt, aber unter XP wars ja nicht drin oder ? (hab geschaut unter Vista is es drin )
Bitte warten ..
Mitglied: bastla
09.04.2013 um 15:03 Uhr
Hallo ThePinky777!

"findstr" gab's auch schon in W2000 ...

Grüße
bastla
Bitte warten ..
Mitglied: kohlfurther
09.04.2013 um 20:44 Uhr
N'Abend in die Runde... :D

Wie versprochen hier noch der abschließende Hinweis:
Meine Tests mit dem robocopy-Befehl
"robocopy.exe [Quelle] [Ziel] /E /XO /V /NP /LOG:[Ziel Log-File]"
sind gut verlaufen!

Werde die Batch-Datei nun noch mit einem anschließenden DELETE-Befehl versehen, der dann nach dem Kopier-Vorgang die [Quelle] löscht und habe das Mini-Projekt dann abgeschlossen...

Abschließend wird die Möglichkeit dann noch an die betroffene Kollegenschaft per Push-Mail "verteilt" bzw. auf den Ablageort der Batch-Datei hingewiesen und GUT ists...

VIELEN LIEBEN DANK NOCHMAL an alle Beiträge zu dem Thema... :D
Bin nun wieder ein Stückchen schlauer und freue mich schon auf den nächsten kleinen Auftrag für eine Kopier-Batch...

und natürlich den nächsten Beitrag hier im Forum...

Thema gilt jetzt für mich als gelöst...

Alles Gute in die Community vom...
Kohlfurther :D
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Windows Server
gelöst Freigegebener Ordner "Eigene Dateien" (8)

Frage von JensDND zum Thema Windows Server ...

Batch & Shell
gelöst Ordner per Batch verschieben, Datei kopieren (2)

Frage von Shape.Shifter zum Thema Batch & Shell ...

Batch & Shell
gelöst EDI Dateien auf Inhalt prüfen und verschieben (6)

Frage von ThomasKern zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...