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 Dateien von der Quelle zum Ziel (eine Ebene höher) kopieren

Mitglied: darebo

darebo (Level 1) - Jetzt verbinden

11.07.2018 um 16:41 Uhr, 229 Aufrufe, 8 Kommentare

Hallo,

es gibt einen Quellbereich mit mehreren tausend Ordnern und Dateien z.B.:

C:\temp\Quelle\*\N

  • - steht für wechselnde, beliebige Ordner (z.B. GUID)

Bsp:
C:\temp\Quelle\0A519B3F-17C1-4264-88B7-550D47ECC903\N\*.*
C:\temp\Quelle\0A0554C4-7CD2-48D6-AB9B-5ACAA2E8B227\N\*.*
C:\temp\Quelle\0CBCA949-9E83-4119-B3CD-5B3BFB9D8488\N\*.*
C:\temp\Quelle\EB6B5212-1DEE-4FA7-B7D7-D32606B32D4D\N\*.*
usw.

Unterhalb des letzten Ordners befinden sich jeweils unterschiedliche Dateien/Dateitypen. Es sollen aber u.a. nur die .txt Dateien vom Quell- zum Zielbereich kopiert werden. Die Struktur des Quellbereiches soll nicht verändert werden.

Aktuell ist der Zielbereich leer. Der Zielbereich soll schlussendlich nach der Kopieraktion fast die ähnliche Struktur ( GUID\*.txt ) wie der Quellbereich haben. Der Zielbereich liegt speichermäßig aber völlig woanders und die Dateien sollen eine Ebene höher rutschen. Zum Testen habe ich daher den nachfolgenden Bereich gewählt.

C:\temp\Ziel\*\

  • - steht für wechselnde Ordner aus der Quelle (z.B. GUID)

So soll nach der Kopieraktion der Zielbereich aussehen.
Bsp.:

C:\temp\Ziel\0A519B3F-17C1-4264-88B7-550D47ECC903\*.txt
C:\temp\Ziel\0A0554C4-7CD2-48D6-AB9B-5ACAA2E8B227\*.txt
C:\temp\Ziel\0CBCA949-9E83-4119-B3CD-5B3BFB9D8488\*.txt
C:\temp\Ziel\EB6B5212-1DEE-4FA7-B7D7-D32606B32D4D\*.txt
usw.

Ich hoffe es ist einigermaßen klar beschrieben.

Einige Ansätze mit der for-Schleife habe ich gemacht. Scheitere aber beim Anlegen der Zielstruktur mit jeweils einen Unterordner weniger.

Danke vorab für die Unterstützung.
Mitglied: Tezzla
11.07.2018 um 17:04 Uhr
01.
foreach ($currywurst in (get-childitem "Root wo deine Zielordner liegen" -directory).fullname) 
02.
03.
  robocopy "Quellverzeichnis wo deine TXT liegt" "$currywurst" pommes.txt 
04.
}
Durchläuft das Zielverzeichnis "Currywurst" und kopiert in jeden Unterordner die "Pommes.txt".
Kommt das so ungefähr hin?

VG
Tezzla
Bitte warten ..
Mitglied: darebo
11.07.2018 um 17:16 Uhr
Sorry, ich glaube das passt nicht so. Die Zielstruktur gibt's es noch nicht. Diese soll sich wie weiter beschrieben aus Teilen der Quellstruktur zusammensetzen.

Aus dem Quellbereich sollen die fett markierten Ordner und die jeweils im letzten Unterordner (..\N\) befindlichen unterschiedlichen .txt Dateien an das Ziel kopiert werden:

C:\temp\Quelle\0A519B3F-17C1-4264-88B7-550D47ECC903\N\*.*
C:\temp\Quelle\0A0554C4-7CD2-48D6-AB9B-5ACAA2E8B227\N\*.*
C:\temp\Quelle\0CBCA949-9E83-4119-B3CD-5B3BFB9D8488\N\*.*
C:\temp\Quelle\EB6B5212-1DEE-4FA7-B7D7-D32606B32D4D\N\*.*
...

Zielbereich
C:\temp\Ziel\0A519B3F-17C1-4264-88B7-550D47ECC903\*.txt
C:\temp\Ziel\0A0554C4-7CD2-48D6-AB9B-5ACAA2E8B227\*.txt
C:\temp\Ziel\0CBCA949-9E83-4119-B3CD-5B3BFB9D8488\*.txt
C:\temp\Ziel\EB6B5212-1DEE-4FA7-B7D7-D32606B32D4D\*.txt

Daher müsste der Quellbereich eingelesen und nur der vorletzte Ordner (fett markierte) genommen werden und dieser Ordner im Zielbereich erstellt werden sowie die .txt Dateien dort hineinkopiert werden.
Bitte warten ..
Mitglied: colinardo
LÖSUNG 11.07.2018, aktualisiert um 18:18 Uhr
Servus,

Powershell (mit Kommentaren):
01.
# Quellordner 
02.
$quelle = 'D:\quelle' 
03.
# Zielordner 
04.
$ziel = 'D:\ziel' 
05.
# Schleife über die Ordner der Quelle 
06.
gci $quelle -Directory | %{ 
07.
    # Zielordner festlegen 
08.
    $target = "$ziel\$($_.Name)" 
09.
    # Zielordner erstellen wenn er noch nicht existiert 
10.
    if(!(test-Path $target)){md $target -Force | out-null} 
11.
    #  Alle Textdateien aus dem Unterordner "\N" in die Zielstruktur kopieren 
12.
    gci "$($_.FullName)\N" -Filter *.txt -Recurse -File | copy-item -Destination $target -Verbose 
13.
}
oder Batch:
01.
@echo off 
02.
set "quelle=D:\Quelle" 
03.
set "ziel=D:\Ziel" 
04.
for /d %%a in ("%quelle%\*") do ( 
05.
    if not exist "%ziel%\%%~nxa" md "%ziel%\%%~nxa" >nul 
06.
    copy "%%~a\N\*.txt" "%ziel%\%%~nxa\" 
07.
)
Grüße Uwe
Bitte warten ..
Mitglied: darebo
12.07.2018 um 15:11 Uhr
Hallo Uwe,

danke für die Beispiellösungen.

Die Batchlösung funktioniert einwandfrei.

Bei der Powershell-Lösung erhalte ich folgende Fehlermeldung:

Get-ChildItem : Es wurde kein Parameter gefunden, der dem Parameternamen "Directory" entspricht.
Bei Zeile:6 Zeichen:23

gci $quelle -Directory <<<< | %{

+ CategoryInfo : InvalidArgument: ( [Get-ChildItem], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

Kann aber den Fehler nicht direkt auflösen. Hast du noch eine Idee?

Danke.

Grüße darebo
Bitte warten ..
Mitglied: colinardo
LÖSUNG 12.07.2018, aktualisiert um 15:48 Uhr
Zitat von darebo:
Bei der Powershell-Lösung erhalte ich folgende Fehlermeldung:
Kann aber den Fehler nicht direkt auflösen. Hast du noch eine Idee?
Ja eindeutig, du verwendest eine bereits sehr veraltete Powershell 2.0, die kennt die Parameter -Directory und -File noch nicht, lässt sich aber leicht für die PS2.0 umschreiben,

Gesamt dann so
01.
#Quellordner 
02.
$quelle = 'D:\quelle' 
03.
# Zielordner 
04.
$ziel = 'D:\ziel' 
05.
# Schleife über die Ordner der Quelle 
06.
gci $quelle | ?{$_.PSIsContainer} | %{ 
07.
    # Zielordner festlegen 
08.
    $target = "$ziel\$($_.Name)" 
09.
    # Zielordner erstellen wenn er noch nicht existiert 
10.
    if(!(test-Path $target)){md $target -Force | out-null} 
11.
    #  Alle Textdateien aus dem Unterordner "\N" in die Zielstruktur kopieren 
12.
    gci "$($_.FullName)\N" -Filter *.txt -Recurse | ?{!$_.PSIsContainer} | copy-item -Destination $target -Verbose 
13.
}
Bitte warten ..
Mitglied: darebo
12.07.2018 um 16:18 Uhr
Powershell Version und deine Variante kann ich erst morgen prüfen.

Danke nochmals.
Bitte warten ..
Mitglied: darebo
13.07.2018 um 10:06 Uhr
Ja es lag an der Powershell Version (2.x).

Daher funktioniert jetzt deine Lösung bestens. Dafür Danke nochmal.

Wenn man noch mehr Dateitypen einschließen möchte, dann kann man die Zeile 12 auch mit folgende Code-Vorschlag ersetzen:

  1. Kopierfunktion mit mehr als nur einem Dateityp Filter
gci "$($_.FullName)\N" -include ('*.txt', '*.rtf') -Recurse | ?{!$_.PSIsContainer} | copy-item -Destination $target -Verbose
Bitte warten ..
Mitglied: colinardo
13.07.2018 um 10:19 Uhr
Rischtisch.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Dateien eine Ebene höher
Frage von 918103Batch & Shell7 Kommentare

Hallo, habe diese Bat gefunden, aber diese funktioniert nur wenn ich im jeweiligen Ordner bin. for /d %%v in ...

Batch & Shell

Ordner mit bestimmter Zeichenfolge aus Quelle nach Ziel kopieren

gelöst Frage von ahstaxBatch & Shell6 Kommentare

Hallo, ich möchte Ordner mit einer Batch-Datei aus einem Quellverzeichnis in ein Zielverzeichnis kopieren. Die zu kopierenden Ordner sind ...

Batch & Shell

Bestimmte Dateien aus Unterordner eine Ebene höher verschieben

gelöst Frage von OOmatrixOOBatch & Shell2 Kommentare

Hallo. Ich habe folgende Ausgangssituation: Hauptordner Ordner x Unterordner x Ordner y Unterordner y usw. Ich möchte nun die ...

Batch & Shell

PowerShell und Get-ChildItem - Dateien eine Ebene höher schieben

gelöst Frage von zerberusBatch & Shell3 Kommentare

Guten Tag, ich habe folgendes Problem welches ich gerne mit PowerShell lösen möchte. In einem Ordner existieren 400 Ordner, ...

Neue Wissensbeiträge
Peripheriegeräte
Unterschrank für HP Drucker
Tipp von NixVerstehen vor 1 TagPeripheriegeräte1 Kommentar

Als kurzen Freitags-Tipp möchte ich gerne meinen neuen Drucker-Unterschrank Modell Amica KS 15423W vorstellen. Das Gerät eignet sich hervorragend ...

Windows 10
Windows 10 - Probleme mit Point-And-Print
Tipp von emeriks vor 2 TagenWindows 103 Kommentare

Hi, wir kämpfen z.Z. mit einigen Druckertreibern, welche unter Win10 beim Verbinden eines Druckers von Printserver mit dem Dialog ...

Windows 10

Windows 10 1803 - Ihr Roamingbenutzerprofil wurde nicht vollständig synchronisiert

Anleitung von Deepsys vor 2 TagenWindows 101 Kommentar

Bei allen Windows 10 1803 PCs traten Probleme mit den Servergespeicherten Profilen auf. Das Abmelden dauerte sehr lange und ...

Exchange Server
Exchange - Fehler mit 2018-07 Sicherheitsupdate
Tipp von ArnoNymous vor 4 TagenExchange Server7 Kommentare

Hallo, es gibt mal wieder Freude mit den MS-Updates. KB4338814 führt dazu, dass der Exchange keine Mails mehr zustellt. ...

Heiß diskutierte Inhalte
Humor (lol)
Freitagsfrage: Was tun, wenn der Admin der DAU ist?
gelöst Frage von VoiperHumor (lol)32 Kommentare

Moin Zusammen, Eine nicht ganz ernst gemeinte Frage an die Außendienstler unter uns. Zusammenfassung: Ein Inhouse Admin ruft bei ...

LAN, WAN, Wireless
HP Probook 470 G4 - abbrechende Downloads
Frage von joern1LAN, WAN, Wireless19 Kommentare

Folgendes Problem, für einen Tipp wäre ich dankbar: Bei WLAN-Verbindung zum Internet (nicht LAN) kommt es bei etwas größeren ...

Windows Netzwerk
LTE Modul - Kein Internet trotz Verbindung
Frage von killtecWindows Netzwerk19 Kommentare

Hallo, ich habe hier ein Dell 7390 2-in-1 mit W10 Pro wo ich nachträglich eine LTE-Karte (Original Dell DW5811e ...

Router & Routing
Routing Problem mit Kaskade FritzBox und pfsense zugeriff nur von der firewall auf die clients und 0.0.0.0
Frage von ukl1967Router & Routing17 Kommentare

Hallo, ich habe ein an sich triviales Problem elches ich allerdings nicht gelöst bekomme. NAS 10.5.10.53 Mein Netz baut ...