Per Batchdatei Namen des Ordners auf Datei darin übertragen...

mischaef

Kassettenkind
Teammitglied
Registriert
Aug. 2012
Beiträge
6.148
Hallo zusammen,

ich bin auf der Suche nach einer Möglichkeit, per Batch-Datei die Namen eines Ordners abzufragen und der darin befindlichen Datei (immer nur eine) dem Namen dieses Ordners zu geben, weiß aber nicht wie ich das anstellen soll. Andersrum stellt das kein Problem dar, also anhand einer Datei einen Ordner mit gleichem Namen zu erstellen und die Datei in diesen zu verschieben...

Hätte jemand eine Idee wie ich dies umsetzen könnte?

Besten dank schon mal

Michael
 
Als batch wäre mir das zu umständlich
in Powershell ist das wie folgt zu lösen

$dateien=gci C:\Users\sklaes\Desktop\Test\*\*
foreach ($datei in $dateien)
{
$Ordner = Split-Path $Datei -parent
Rename-Item $Ordner $datei.name
}

getestet!!!
 
Zuletzt bearbeitet: (getestet)
Code:
For /F "Tokens=* Delims=" %%i IN ('Dir /B /AD C:\Verzeichnis') DO Ren "C:\Verzeichnis\%%~i\*.ext" "%%~ni.ext"

Ungetestet, aber so ähnlich müsste es funktionieren.
 
So, ich bin mal zum testen gekommen...

Das Powershell-Script hat generell funktioniert - nur leider anders rum, die Ordner bekamen die Datei-Namen...


Das Batch-Script habe ich soweit hinbekommen, nur scheint es Probleme mit Hauptordnern mit Leerzeichen zu haben, also ein Verzeichnis in dem die Verzeichnisse mit den einzelnen Files liegen. Kürze ich das auf ein Wort funktioniert es...also:

Das ist der erste Ordner/Folge 1 XYZ/Folge1 XYZ.ext

Ordner/Folge 1 XYZ/Folge1 XYZ.ext


Ansonsten funzt es...
 
wegen der Leerzeichen musst die Anweisung nochmal in Anführungszeichen gesetzt werden:

"C:\Verzeichnis\"%%~i"\*.ext"
 
ok, besten dank, werde ich ausprobieren...
 
Da hab ich wohl die Aufgabenstellung zu schnell gelesen :evillol:

Hier die aktualisierte Fassung:

$dateien=gci C:\Users\sklaes\Desktop\Test\*\*
foreach ($datei in $dateien)
{
$Ordner = Get-Item (Split-Path $Datei -parent)
Rename-Item $datei (($Ordner.name)+$datei.extension)
}
 
Zurück
Oben