Jump to content

Script zum Verschieben von Ordnern mit Inhalt


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hi,

 

ich möchte ein powershell script basteln, welches mir Ordner mit einem gewissen pattern in zugewiesene Ordner verschiebt.

 

Ordner, die mit 200.... anfangen, sollen in den Ordner 200.

Ordner, die mit 201..... anfangen sollen in 201 usw.

 

Dass man mit Get-ChildItem -path F:\padaten-calink\production\Freigabe-DXF -recurse -filter "200????_???" die gewünschten Ordner aufgelistet bekommt, habe ich bereits raus gefunden.

 

kann ich irgendwie zu jeder zeile, die mir das Get-ChildItem ausgibt, einen Befehl anhängen, der mir diese Zeile in den anderen Ordner verschiebt?

 

Da ich mit Powershell noch nicht so viel am Hut habe, frag ich einfach mal hier. Vielleicht hat ja jemand lust zu helfen! :grins2:

 

achja, gefunden hab ich bereits das hier:

https://www.windowspro.de/script/copy-item-move-item-dateien-kopieren-verschieben-powershell

 

allerdings werde ich daraus nicht so ganz schlau.

gci *.ini | %{if(-not(Test-Path (".\config_bak\" + $_.name))){copy $_ .\config_bak -passthru|select name}}

Hier muss man die Quelldateien mit Hilfe von Get-ChildItem erfassen und diese Liste einer Schleife übergeben, in der Test-Path jede einzelne Datei auf ihre Existenz prüft. Nur wenn sie nicht vorhanden ist, kommt der Kopierbefehl zum Zug, und zwar für jede Datei separat.

 

bearbeitet von Gu4rdi4n
Link zu diesem Kommentar
vor 26 Minuten schrieb Gu4rdi4n:
Da ich mit Powershell noch nicht so viel am Hut habe,

Wie schade  ... ein guter Startpunkt ist der kostenlose VideoKurs  in der Microsoft Virtual Academy - Getting Started with Microsoft Powershell.

 

Vernünftig formatiert und die Aliasse ausgeschrieben sieht der Code so aus:

Get-ChildItem *.ini | 
    ForEach-Object {
        if (-not(Test-Path (".\config_bak\" + $_.name))) {
            Copy-Item $_ .\config_bak -passthru | Select-Object -Property name
        }
    }

 

bearbeitet von BOfH_666
Link zu diesem Kommentar

Hi,

 

ja deswegen möchte ich mich immer mehr damit beschäftigen! :)

Ist ja ein skill der echten Mehrwert bringt.

 

Danke für die Reformatierung!

 

Habe jetzt eine andere Lösung noch gefunden, die mir besser gefällt.

 

Get-ChildItem -Path "C:\Users\user\TestOrdner Powershell" -filter "222???????????-?????(?)" |Move-Item -Destination "C:\Users\user\TestOrdner Powershell\222"

 

Hast du hier vielleicht noch Anregungen?

 

Ist das so sinnvoller als mit ner schleife?

Kompakter ist es auf jedenfall schonmal

Link zu diesem Kommentar
vor 9 Minuten schrieb Gu4rdi4n:

Ist das so sinnvoller als mit ner schleife?

Das kommt auf Deine Anforderungen und auf Deine Fähigkeiten an.  ;-)  Aber wenn das den Job erstmal erledigt - super. Ich würde aber dringend empfehlen, sich erstmal die Grundlagen draufzuschaffen. Der Videokurs in der MVA dauert nur ca 8 - 10 Stunden und bildet schon mal eine solide Grundlage. 

bearbeitet von BOfH_666
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...