@comfreak
Ich habe:
1. den Code im ersten Skript mit diesem ersetzt
2. in der dritten Zeile:
die Suffixe -123 und -456 entsprechend meiner vorhandenen abgeändert (-Hinz / -Kunz)
3. Das Skript im Ordner c:\test gespeichert und mit Rechtsklick auf "mit Powershell ausführen" gestartet.
Sieht jetzt so aus:
Das Powershell-Fenster erscheint kurz (es ist nichts drin zu sehen, keine Fehlermeldung), aber im Ordner hat sich NICHTS getan. KEINE Datei wurde verschoben...
Was habe ich falsch gemacht?
@HonniCilest
Wie wende ich das in @comfreak 's Skript an? Entschuldige, das kann ich noch nicht... ;-)
Funktioniert wieder auf Anhieb super. Ich danke Dir
Wie meinst Du
Das habe ich inhaltlich nicht verstanden...
Zur Erklärung: Der erste Fall ist für NEUE volle Hauptordner, der zweite für BEREITS BESTEHENDE, in denen die Dateien jetzt noch zu überarbeiten sind ;-)
Dankeschön und Viele Grüße
Aber nicht, wenn man sich wahrscheinlich falsch anstellt...Ja, das ginge zum Beispiel wie folgt
Ich habe:
1. den Code im ersten Skript mit diesem ersetzt
2. in der dritten Zeile:
Code:
$_.BaseName -match "^(.*?)(-123|-456)?$" | Out-Null
3. Das Skript im Ordner c:\test gespeichert und mit Rechtsklick auf "mit Powershell ausführen" gestartet.
Sieht jetzt so aus:
Code:
$rootDirectory = 'C:\test'
$coreFolder = '.Ordner'
# ------------------------------------
cls
# Problem 1
gci $rootDirectory -File | % {
$_.BaseName -match "^(.*?)(-Hinz|-Kunz)?$" | Out-Null
$relevantFileName = $matches[1]
$destinationPath= Join-Path (Join-Path $rootDirectory $_.relevantFileName) $_.Name
try {
Move-Item -Path $_.FullName -Destination $destinationPath -ErrorAction Stop
}
catch [System.IO.DirectoryNotFoundException] {
Write-Information "File $_.FullName skipped because no similarly-named directory was found."
}
}
# Problem 2
gci $rootDirectory -Directory -Exclude $coreFolder | %{
cp -Path ($rootDirectory, $coreFolder -join '\') -Destination ($_.FullName) -ErrorAction SilentlyContinue
}
Das Powershell-Fenster erscheint kurz (es ist nichts drin zu sehen, keine Fehlermeldung), aber im Ordner hat sich NICHTS getan. KEINE Datei wurde verschoben...
Was habe ich falsch gemacht?
@HonniCilest
Code:
Write-Host ('Test-123.jpg' -split '-')[0] # Ausgabe: Test
Code:
$rootDirectory = 'C:\test'
gci $rootDirectory -Recurse -File | %{
mv -Path $_.FullName -Destination (Join-Path -Path $rootDirectory -ChildPath $_.Name)
}
Wie meinst Du
?bzw. wenn du alle Dateien in deinem 'main' Verzeichnis (siehe Problem 2) ignorieren möchtest:
Das habe ich inhaltlich nicht verstanden...
Ich meinte nur... "Jetzt hat er es so, wie er wollte - und nun will er es wieder rückgängig machen?"Ach quatsch
Zur Erklärung: Der erste Fall ist für NEUE volle Hauptordner, der zweite für BEREITS BESTEHENDE, in denen die Dateien jetzt noch zu überarbeiten sind ;-)
Dankeschön und Viele Grüße