Windows 10 - Skript mit regulären Ausdrücken zum Vergleichen von Dateinamenteilen und Kopieren nicht vorhandener Namen

Windows 10 - Skript mit regulären Ausdrücken zum Vergleichen von Dateinamenteilen und Kopieren nicht vorhandener Namen

Ich verwende Windows 10.

Ich möchte viele Dateien von einem Ordner in einen anderen kopieren und brauche wahrscheinlich ein Skript oder eine andere Lösung, die dies ermöglicht.

Ich habe 2 Ordner: Der Ordner Aenthält Dateien mit den Namen:

00010_name0_1680x1050.jpg
00020_name11_1680x1050.jpg
00021_name222_1680x1050.jpg
00022_name300_1680x1050.jpg

während der Zielordner BDateien mit folgenden Namen enthält:

00010_name0_1920x1200.jpg
00020_name11_1920x1200.jpg
00021_name222_1920x1200.jpg
00030_name500_1920x1200.jpg

Die Dateinamen sind also gleich, unterscheiden sich jedoch im letzten Teil, nämlich hinsichtlich der Auflösung.

Ich möchte alle Dateien von Anach kopieren B, aber nur diejenigen, deren erster Namensteil unterschiedlich ist, bis zum letzten, _der die Auflösung trennt.

Vielleicht brauche ich also ein Regex-Skript, das Namen vergleichen und entscheiden kann, ob sie kopiert werden sollen oder nicht. Jede Art einfacher Lösung wird geschätzt.

Antwort1

Sie können diese Art von PowerShell-Skript verwenden:

# Save directory paths to vars
$dirA = C:\Some\Folder\A
$dirB = C:\Some\Folder\B

# Get file names of each found .jpg (with 1920x1200 in name)
$fileNamesB = (Get-ChildItem -Path $dirB -Filter *_1920x1200.jpg).Name

# Get prefixes of names that shouldn't be copied, by removing the resolution postfix
# % is shorthand for ForEach-Object 
$prefixesB = $fileNamesB | % { $_ -replace "_1920x1200\.jpg$", '' }

$filesA = Get-ChildItem -Path $dirA -Filter *_1680x1050.jpg
# Filter files by checking their name property against our prefixes
# ? is shorthand for Where-Object
$filteredFilesA = $filesA | ? { ($_.Name -replace "_1680x1050\.jpg$", '') -NotIn $prefixesB } 

# Copy the filtered files to folder B
$filteredFilesA | Copy-Item -Destination $dirB

Erläuterungen zu den Funktionen finden Sie in den Kommentaren.

verwandte Informationen