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

Inhalt von Profilordnern per batch kopieren

Frage Entwicklung Batch & Shell

Mitglied: PittoS

PittoS (Level 1) - Jetzt verbinden

27.06.2011, aktualisiert 17:04 Uhr, 4162 Aufrufe, 13 Kommentare, 1 Danke

Wie kann ich mit einem Batch-Script den Inhalt mehrerer Profile in andere Ordner kopieren?

Hallo zusammen,

ich bin relativ neu in der Batch-Erstellung, versuche mich allerdings schon seit einer guten Woche daran.

Folgendes Szenario, wie es später sein soll:

Es gibt auf einem Server einen Ordner, wo die ganzen Profilordner abgelegt sind.
In diesen Ordnern soll nun ein neuer Ordner erstellt werden und "der Inhalt" der Profilordner soll in diese neuen Ordner verschoben werden.

Soviel zum soll.

Um das Ganze zu testen, bleibe ich erst einmal beim kopieren (anstatt verschieben).

Hier mein aktuelles Script:
01.
REM @echo off 
02.
 
03.
set /P profiles=Bitte Pfad zu den Profilen eingeben:  
04.
 
05.
dir /b %profiles% > c:\profile_test\profiles.log 
06.
 
07.
cd %profiles% 
08.
 
09.
for /f "delims=" %%a in (c:\profile_test\profiles.log) do cd %profiles%\%%a & ^ 
10.
for /f "delims=" %%b in ('dir /b /s') do robocopy "%%b" %profiles%\%%a\NEU_DOKS\ /S /E /COPYALL /MIR & pause 
11.
 
12.
exit
Momentan wird nur der Inhalt des ersten Profils in den neuen Ordner kopiert, der Inhalt der anderen Profile landet leider im selben Ordner, da er bei %%a wohl nur die erste Zeile der profiles.log übernimmt.

Wie geht man nun weiter vor?
Lösungsansätze würden mir wohl reichen, möchte ja nicht, dass man mir die Arbeit abnimmt ;)

Viele Grüsse
Pitto
Mitglied: bastla
27.06.2011 um 17:17 Uhr
Hallo PittoS!

Wie gewünscht nur ein Ansatz : Anstelle der Verwendung einer Temporärdatei kannst Du gleich direkt mit einer Schleife alle Profilordner durchgehen:
for /d %%a in ("%profiles%") do for /f "delims=" %%b in ('dir /b /ad "%%a"') echo Kopiere "%%a\%%b" nach "%%a\NEU_DOKS\%%b\"
Grüße
bastla
Bitte warten ..
Mitglied: mathe172
27.06.2011 um 17:35 Uhr
Hallo,

@bastla: Ich glaube in der Profilesvariable steht nur ein Pfad und er will (wenn ich das richtig verstanden habe) nicht den Ordner, sondern nur den Inhalt kopieren.

@PittoS:
Als ansatz:
01.
dir /b /a:d  
02.
rem liefert alle Verzeichnisse in einem Dateipfad 
03.
 
04.
xcopy /s /e /k "Pfad\*" "Ziel\" 
05.
rem Kopiert den Inhalt eines Pfades/Ordners in ein Ziel (mit Verzeichnissen)
[edit: Parameter /k hinzugefügt]

Mathe172
Bitte warten ..
Mitglied: bastla
27.06.2011 um 18:32 Uhr
@mathe172
Auf "alle Ordner" bin ich durch
In diesen Ordnern
gekommen ...
Mit "xcopy" in einen (Ziel-)Ordner, der innerhalb der Quellordnerstruktur liegen soll, kopieren wird, fürchte ich, nix werden; mit einen Temp-Ordner (der danach an die richtige Stelle verschoben wird) als Ziel könnte das klappen - allerdings wären dann die NTFS-Rechte zu beachten ...

... und BTW: Zusätzlich zu einem "/e" solltest Du kein "/s" brauchen.

Grüße
bastla
Bitte warten ..
Mitglied: mathe172
27.06.2011 um 18:58 Uhr
Hallo,

In diesen Ordnern
Hab ich wohl überlesen

Das andere funktioniert bei mir, ich kopiere ja alles von Ordner Profile/Profil1 nach Profile/NeuerOrdner, aber du hast recht, ein "/exclude:Ziel\" kann nicht schaden...

Aber schauen wir mal, ob wir den TO richtig verstanden haben.
Mathe172
P.S.:@PittoS: "pushd" und "popd" finde ich schöner als "cd"
Bitte warten ..
Mitglied: PittoS
28.06.2011 um 09:15 Uhr
Hi ihr beiden,

danke schon einmal für die Hilfe.

Es ist tatsächlich so, dass ich nicht die Ordner an sich, sondern nur den Inhalt kopieren/verschieben möchte.
Allerdings werden bei xcopy bei meinem Script momentan die Berechtigungen nicht übernommen.
Die entsprechenden Ordner kopiere ich erstmal nach c.\Test1\%profilname%\NEU_DOKS\
Bei robocopy werden die ordner an sich kopiert, nicht nur der Inhalt...
Da hat robocopy wohl Probleme mit Variablen in Anführungsstrichen.

Hier das Kopieren mit xcopy

01.
for /d %%a in ("%profiles%") do for /f "delims=" %%b in ('dir /b /a:d "%%a"') do xcopy /T /E /H /K /O "%%a\%%b\*.*" "c:\Test1\%%b\NEU_DOKS\" & pause
ich dachte xcopy könnte die berechtigungen schon mit übernehmen, oder hab ich da irgendwo nen kleinen Fehler drin?

Um das ganze mit robocopy zu realisieren müsste ich sowas angeben wie "%%a\%%b\" (mit dem backslash), was er dann aber nicht übernimmt...

Viele Grüsse
Pitto

PS: folgender code funktioniert mit robocopy für das erste Verzeichnis, da dieses keine Leerzeichen im Namen besitzt:

01.
for /d %%a in ("%profiles%") do for /f "delims=" %%b in ('dir /b /a:d "%%a"') do robocopy %%a\%%b\ c:\Test1\%%b\NEU_DOKS\ /S /E /COPYALL /MIR & pause
Dies macht er, weil keine Anführungsstriche vorhanden sind, allerdings macht er das natürlich nicht wenn ein Verzeichnis mit Leerzeichen im Namen vorhanden ist....
Bitte warten ..
Mitglied: PittoS
28.06.2011 um 09:56 Uhr
Hallo nochmal,

ich habe wieder eine Erkenntnis gewonnen. Bei xcopy werden nur die Berechtigungen vom Verzeichnis übernommen, von wo aus die Berechtigungen vererbt werden, allerdings hilft das auch nur bedingt weiter.

hier der Code mit xcopy:

01.
for /d %%a in ("%profiles%") do for /f "delims=" %%b in ('dir /b /a:d "%%a"') do xcopy /T /E /H /K /O "%%a\%%b" "c:\Test1\%%b\NEU_DOKS\" & pause
Hierbei werden die Berechtigungen dann auf den neuen Ordner NEU_DOKS übernommen.
Bleibt nun abzuwarten ob dies in der Praxis anwendbar ist.
Ich meld mich wieder ;)

Viele Grüsse
Pitto
Bitte warten ..
Mitglied: PittoS
28.06.2011 um 12:01 Uhr
Hallo nochmal,

Dieses Script funktioniert, nur leider nicht ganz wie gedacht.

01.
REM @echo off 
02.
 
03.
set tempdir=c:\Test1 
04.
 
05.
set /P profiles=Bitte Pfad zu den Profilen eingeben:  
06.
 
07.
for /d %%a in ("%profiles%") do for /f "delims=" %%b in ('dir /b /a:d "%%a"') do xcopy /T /E /H /K /O "%%a\%%b" "c:\Test1\%%b\NEU_DOKS\" 
08.
pause 
09.
for /d %%a in ("%profiles%") do for /f "delims=" %%b in ('dir /b /a:d "%%a"') do rd /s /q "%profiles%\%%b\" 
10.
pause 
11.
for /d %%a in ("%tempdir%") do for /f "delims=" %%b in ('dir /b /a:d "%%a"') do xcopy /T /E /H /K /O "%%a\%%b" "%profiles%\%%b\" 
12.
pause 
13.
 
14.
rd /s /q %tempdir% 
15.
pause 
16.
 
17.
REM exit
Die Profile werden von einem Ordner in den anderen Ordner kopiert. Das erste Problem dabei, die Berechtigungen liegen nur noch auf dem neuen Ordner NEU_DOKS und nicht mehr auf dem Profilordner selber.
Anschliessend werden die Profilordner erstellt und aus dem neuen Ordner wieder kopiert.
Allerdings haben die neuen Profilordner nun keine speziellen Berechtigungen mehr....

Hat da vielleicht jemand eine Idee? Eigentlich sollte ja eh nur der "Inhalt" kopiert werden und nicht der komplette Ordner...

Viele Grüsse
Pitto
Bitte warten ..
Mitglied: bastla
28.06.2011 um 14:39 Uhr
Hallo PittoS!

Nur mal kurz die Zwischenfrage: Was ist denn der eigentliche Sinn der ganzen Aktion, welches Ergebnis soll am Ende stehen?

Grüße
bastla
Bitte warten ..
Mitglied: PittoS
28.06.2011 um 14:55 Uhr
Hallo Bastla,

dachte das hätte ich oben schon geschrieben.
Auf einem Server in einem Pfad, wo sich die Profilordner befinden, sollen die Dateien aus den Profilen in einen neuen Ordner (unter dem selben Pfad) verschoben werden.

alt:
%username%\%daten%

neu:
%username%\Eigene Doks\%daten%

so ungefähr....


bin jetzt soweit, dass ich das neue verzeichniss mit den entsprechen dateien habe, allerdings muss ich noch den alten ordner entfernen, per script hab ich das noch nicht geschafft....


Viele Grüsse
Pitto
Bitte warten ..
Mitglied: bastla
28.06.2011 um 15:04 Uhr
Hallo PittoS!

So ganz deutlich war's für mich nicht - ist aber (wenn es schon mal soweit geklappt hat) ja eigentlich auch nicht mehr wichtig ...
allerdings muss ich noch den alten ordner entfernen, per script hab ich das noch nicht geschafft....
Da es ja jetzt unterhalb von %username% eigentlich nur noch den Ordner "Eigene Doks" geben darf, könntest Du folgende ungetestete Schleife versuchen:
for /d %%i in ("%profiles%") do for /f "delims=" %%a in ('dir /b /ad "%%i"^|findstr /v /c:"Eigene Doks"') do echo rd /s /q "%%~i\%%~a"
Das "Sicherheits"-echo dient dazu, die Löschbefehle nur anzeigen zu lassen ...

Grüße
bastla
Bitte warten ..
Mitglied: PittoS
28.06.2011 um 15:35 Uhr
Hallo bastla,

danke für die Hilfe, aber nun ist es leider notwendig vom Kopieren auf das Verschieben zu wechseln... sprich sollte der Inhalt der entsprechenden Profile in einen Tempordner verschoben werden und wenn der neue Ordner erstellt wurde in diesen neuen Ordner verschoben werden...

Es soll nichts mehr kopiert werden (nur im testfall) weil sonst zu viele Datenmengen entstehen.

Hoffe das ist einigermassen klar, war für mich am Anfang auch nicht so klar.

Viele Grüsse
Pitto
Bitte warten ..
Mitglied: PittoS
28.06.2011 um 16:49 Uhr
Hallo nochmal,

ich denke ich habs.

01.
@echo off 
02.
set newdir=Eigene Dokumente 
03.
set /P profiles=Bitte Pfad zu den Profilen eingeben:  
04.
for /d %%a in ("%profiles%") do for /f "delims=" %%b in ('dir /b /a:d "%%a"') do robocopy "%%a\%%b" "%profiles%\%%b\%newdir%" /XD "%newdir%" /S /E /COPYALL /MOVE 
05.
pause 
06.
exit
Mal schauen ob es so zufriedenstellend ist, wie ich mir das denke ;)

Vielen Dank und viele Grüsse
Pitto
Bitte warten ..
Mitglied: PittoS
14.07.2011 um 14:23 Uhr
So Skript hat funktioniert und war zufrieden stellend.

Thema erledigt! Danke!
Bitte warten ..
Ähnliche Inhalte
Webbrowser
Datei in Firefox Profilordner kopieren
gelöst Frage von DarkScabsWebbrowser9 Kommentare

Hallo Zusammen, ich möchte eine Java Datei im Firefox in den Profilordner kopieren. Da wir knapp 600 Rechner haben, ...

Visual Studio
Inhalt einer Textbox mit einem Button kopieren?
gelöst Frage von noah1400Visual Studio2 Kommentare

Hey weiß vielleicht jemand wie man den inhalt einer Textbox koppiert ohne rechtsklick kopieren sondern indem man einfach auf ...

Backup
Mit cmd nur Unterordner und dessen Inhalt kopieren
gelöst Frage von red-edBackup5 Kommentare

Guten Tag, ich bin schon öfters auf eurer Seite fündig geworden, nun habe ich aber ein Problem das bestimmt ...

Batch & Shell
Inhalt von Ordner Kopieren und damit Inhalt von Ordner2 überschrieben
gelöst Frage von sigisigiBatch & Shell2 Kommentare

Hallo Zusammen Ich habe ein Problem mit dem kopieren von Dateien. Ziel: Der Inhalt von "zwbu2wua.default" ohne Ordner namen ...

Neue Wissensbeiträge
Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 2 StundenMac OS X

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser ereichbar sind. Leider fehlt ...

Datenschutz

Weitere Inforamtionen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 9 StundenDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 11 StundenWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Microsoft Office

Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei

Anleitung von SarekHL vor 14 StundenMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Microsoft Office
Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei
Anleitung von SarekHLMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von fyrb38Windows 1017 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...