Ich bin immer noch neu in Powershell, und ich versuche ein Programm zu erstellen, das Dateien basierend auf ihrem Namen nimmt und sie in Ordner mit einem ähnlichen Namen, aber nicht genau die verschieben gleich. Zum Beispiel, sagen wir, ich habe 3 Dateien, Apples.txt, Grapes.txt und Oranges.txt. Und ich möchte sie in entsprechende Ordner verschieben, ApplesUSA, GrapesNY, OrangesFL. Ich könnte es nur hart mit einer Schleife und einer Wenn-Dann-Anweisung codieren. Wenn Apples.txt vorhanden ist, wechseln Sie zu AppleUSA. Aber ich möchte, dass es dynamisch ist, also wenn andere Dateien und Ordner später hinzugefügt werden, muss ich den Code nicht aktualisieren. Gibt es eine Möglichkeit, eine Anweisung zu schreiben, die besagt, dass FileA und FolderB ihrem Namen nach ähnlich sind (beide enthalten Äpfel im Namen), dann fileA nach FolderB und so weiter. Jede Hilfe wird geschätzt. Vielen Dank!!!!Dateisortierung basierend auf ähnlichen Datei- und Ordnernamen
0
A
Antwort
0
versuchen so etwas wie dieses
$PathWithFile="C:\temp\Test"
$PathWithDir="C:\temp\Test"
Get-ChildItem $PathWithFile -file -Filter "*.txt" | %{
$CurrentFile=$_
$Dirfounded=Get-ChildItem $PathWithDir -Directory | where {$_ -match $CurrentFile.BaseName} | select FullName -First 1
if ($Dirfounded -ne $null)
{
move-Item $CurrentFile.FullName -Destination $Dirfounded.FullName -WhatIf
}
}
0
A oneliner ähnlich wie @ Esperento der
gci *.txt -af|%{$File=$_.FullName;gci "$($_.BaseName)*" -ad|%{Move $File -Dest $($_.FullName) -whatif}}
Die ausführliche Version:
PushD "X:\path\to\base\folder"
Get-ChildItem *.txt -File | ForEach-Object{
$File = $_.FullName
Get-ChildItem "$($_.BaseName)*" -Directory | ForEach-Object {
Move-Item $File -Destination $_.FullName -whatif
}
}
PopD
Beide Varianten erfordern Powershell V3 für die -File
und -Directory
Parameter (und ihre Pseudonyme -af
/-ad
) Dies kann durch einen zusätzlichen |Where-Object{ $_.PSIsContainer}
jeweiligen | Where-Object{!$_.PSIsContainer}
Verwandte Themen
- 1. Intuitive Dateisortierung in Batch-Skripten?
- 2. Apache mod_rewrite - rewrite zu Ordnernamen basierend auf% {HTTP_HOST} - Endlosschleife
- 3. Ist die CSS-Dateisortierung wichtig und wenn, warum?
- 4. Pandas verschmelzen Datenrahmen basierend auf den meisten ähnlichen Werten
- 5. Komplette Liste der verbotenen Datei- und Ordnernamen für Windows
- 6. Zusammenführen basierend auf ähnlichen, aber nicht genauen Daten
- 7. Gruppe Arrays basierend auf ähnlichen Werten in PHP
- 8. Django "Ähnliche Objekte" basierend auf ähnlichen Tag-Sets
- 9. Okay, Unterstriche in Datei- und Ordnernamen in PHP zu verwenden?
- 10. „Chevron“ -ähnlichen Effekt auf Bilder und Box
- 11. Suchen und Ersetzen von Dateien und Ordnernamen
- 12. Datei Split basierend auf Inhalt
- 13. Ausblenden von Ordnernamen in HTML und AJAX
- 14. Eclipse und m2eclipse Plugin versteckt Teile Ordnernamen
- 15. Ruby - Datei nach einem ähnlichen Wort suchen
- 16. Binäre Klassifizierungsaufgabe auf sehr ähnlichen Mustern
- 17. Benennen Sie den Dateinamen basierend auf dem Ordnernamen über die Eingabeaufforderung
- 18. Regex passenden Ordnernamen lokal (relativ und absolut) und im LAN
- 19. Wie kopiert man Dateien in Ordner basierend auf den ersten 15 Zeichen des Datei- und Ordnernamens?
- 20. .bat aktuellen Ordnernamen
- 21. Wie schnell Pfad aus einer Liste der Ordnernamen-Datei ändern
- 22. Batch-Datei zum Öffnen eines Ordners mit einem partiellen Ordnernamen
- 23. Apache Schwein Shop basierend auf Bedingung
- 24. eine Sperre auf einen Ordnernamen halten, damit es nicht
- 25. Wie kann ich die Dateisortierung von VS Code ändern?
- 26. Batch-Datei zum Verschieben von Dateien basierend auf Teil des Dateinamens, in Ordner basierend auf Teil des Ordnernamens
- 27. Wie ähnlichen Zeilenwert zu finden und
- 28. Count basierend auf anderen csv-Datei
- 29. Split-Text-Datei basierend auf variierenden Zeilentrennzeichen
- 30. VBscript - Datei basierend auf Priorität auswählen
In Powershell ersetzt werden, 'Get-Help About_Comparison_Operators' – user4317867
Wenn Sie klar das Muster beschreiben kann, zum Beispiel "Der vollständige Dateiname stimmt mit dem Anfang des Ordnernamens überein", dann ja, von leicht bis erschöpfend - Suche nach jedem überlappenden Zeichensatz. Wenn es kein Muster gibt, das einfacher ist als Englisch zu verstehen, um die Verbindung herzustellen, dann https://xkcd.com/1425/ – TessellatingHeckler
Nun, sagen Sie, 80 Prozent der Dateien sind tot auf Übereinstimmungen mit dem Ordner, wohin sie sich bewegen werden. Das ist der einfache Teil, es ist die anderen paar Dateien, die das Problem sind, aber das Muster ist das gleiche. Apples.txt bewegt sich in den Ordner ApplesUSA. Erraten Sie die Hauptfrage ist, wie mache ich einen Vergleich, der am Anfang des Dateinamens aufnehmen könnte? –