hancho
Goto Top

Dateien aus Unterordner verschieben und dabei umbenennen

Guten Tag liebe Community,

ich habe ein Problem, das ich nicht lösen kann. Ich möchte Dateien, die sich in Unterordnern befinden, verschieben und dabei umbenennen. Dabei soll dem Dateinamen beim Verschieben der Ordnername, der sich zwei Ebenen höher befindet, angehängt werden. Könnt ihr mir da helfen?

Content-ID: 526137

Url: https://administrator.de/forum/dateien-aus-unterordner-verschieben-und-dabei-umbenennen-526137.html

Ausgedruckt am: 02.04.2025 um 20:04 Uhr

TK1987
TK1987 16.12.2019 aktualisiert um 09:49:33 Uhr
Goto Top
@echo off

set Quellpfad="C:\Pfad\zum\Unterordner"  
set Zielpfad="C:\Test"  

for /f "Delims=" %%A in ('dir /a-d /b %Quellpfad%') do (  
	for /f "Delims=" %%B in ("%Quellpfad:"=%\..\..") do move "%Quellpfad:"=%\%%A" "%Zielpfad:"=%\%%~nA_%%~nB%%~xA"  
	)
Einfach Zeilen 4&5 anpassen.
142232
142232 16.12.2019 um 09:43:55 Uhr
Goto Top
Oder mit Powershell
$quelle = 'c:\quelle'  
$ziel = 'd:\ziel'  
Get-Childitem $quelle -File -Recurse | move-item -Destination {"$ziel\$($_.Name)_$($_.Directory.Parent.Parent.Name)$($_.Extension)"} -verbose  
erikro
erikro 16.12.2019 aktualisiert um 09:51:43 Uhr
Goto Top
Moin,

mit der Powershell:

param(

    $path = "C:\woauchimmer",  
    $targetpath = "P:\wohinauchimmer"  

)
cd $path

$files = get-childitem -Path $path -file

foreach($file in $files) {

    # [string]$filepath = $(Get-ChildItem -path $file.fullname).Directory
    # $dirs = $filepath.split("\") 
    # $newname = $targetpath + "\" + $file.basename + $dirs[$dirs.length -2] + $file.extension 
    # Besser so:
    $newname = $targetpath + "\" + $file.basename + $file.directory.parent.parent.name  + $file.extension  
    move-item -path $file -Destination $newname

}

hth

Erik
erikro
erikro 16.12.2019 um 09:49:44 Uhr
Goto Top
Moin,

Zitat von @142232:
$_.Directory.Parent.Parent.Name

Das ist ja kühl. Den kannte ich noch nicht. face-wink

Liebe Grüße

Erik
Kraemer
Kraemer 16.12.2019 um 09:55:43 Uhr
Goto Top
Moin,
Zitat von @erikro:
cd $path
was willst du damit denn erreichen?

Gruß
erikro
erikro 16.12.2019 um 10:39:44 Uhr
Goto Top
Zitat von @Kraemer:

Moin,
Zitat von @erikro:
cd $path
was willst du damit denn erreichen?

Gruß

Na dass er im richtigen Verzeichnis ist. face-wink Beim Testen habe ich ohne das cd eine Fehlermeldung bekommen, dass er den Pfad nicht finden kann. Warum auch immer.
hancho
hancho 16.12.2019 um 11:35:03 Uhr
Goto Top
Moin,

vielen Dank für die Antworten.

ich habe folgendes Problem: Ich möchte Ordner umbenennen, die wie folgt heißen: "erledigt_40409_05_irgendeinstring"

Ich möchte diese Ordner nur auf die Zahlen reduzieren und am besten die Zahlen tauschen. Also beispielsweise sollte aus dem Ordnernamen "erledigt_40409_05_irgendeinstring" --> "05-40409" werden.

Ist das möglich mit einer Batch-Datei?

Vielen Dank vorab.
142232
142232 16.12.2019 aktualisiert um 11:56:26 Uhr
Goto Top
Schon wieder Freitag? Wieder und vollkommen Off-Topic , der Herr
for /f "delims=" %%a in ('dir /b /ad /s "c:\quelle"') do for /f "tokens=2,3 delims=_" %%b in ("%%~nxa") do ren "%%a" "%%c-%%b"  
hancho
hancho 16.12.2019 um 12:02:56 Uhr
Goto Top
Das funktioniert so nicht.. Ich möchte ja den Ordnernamen umbennen.
142232
Lösung 142232 16.12.2019 aktualisiert um 12:06:29 Uhr
Goto Top
Zitat von @hancho:

Das funktioniert so nicht.. Ich möchte ja den Ordnernamen umbennen.
Doch ... siehe mein letzter Code, der macht das mit Ordnern, wofür ist wohl das dir /b /s /ad da ?

Ganz oben hast du übrigens, noch mal zur Erinnerung, geschrieben

Ich möchte Dateien, die sich in Unterordnern befinden, verschieben und dabei umbenennen.
hancho
hancho 16.12.2019 um 12:05:52 Uhr
Goto Top
Tut mir leid, mein Fehler. Funktioniert einwandfrei.