fromeonly
Goto Top

Batch Ordner erstellen und verschieben

Hallo Leute,

ich habe ein kleines Problem beim erstellen einer Batch.
Ziel der Batch soll es sein, dass sie in dem Ordner indem sie ausgeführt wird,
in jedem bereits vorhandenem Ordner einen Unterordner gleichen Namens anlegt
und im zweiten Schritt den Inhalt des ersten Ordners in diesen Unterordner verschiebt.
Habt ihr da einen Lösungsansatz für mich?

Content-Key: 308362

Url: https://administrator.de/contentid/308362

Ausgedruckt am: 19.03.2024 um 10:03 Uhr

Mitglied: Larmina
Larmina 28.06.2016 um 10:53:40 Uhr
Goto Top
Hi,
den Teil mit Ordner im Unterordner erstellen habe ich nicht ganz verstanden.

So wie ich das verstanden habe hast du:
- einen Ordner, in dem mehrere Unterordner sind
- die Batch im obersten Ordner liegen

und willst:
- In jedem Unterordner einen "Unterunterordner" gleichen Namens erstellen
- in den dann alle Daten verschoben werden, so dass der Unterordner leer wird

Ist das so richtig?
Mitglied: batchnewbie
Lösung batchnewbie 28.06.2016 aktualisiert um 11:13:18 Uhr
Goto Top
Hi, meinst du das so:
@echo off & setlocal EnableDelayedExpansion
cls
for  /f "delims=" %%i in ('dir /b /ad') do (  
    set "Verzeichnis=%%i"  
    echo VerzeichnisName: !Verzeichnis!
    echo md "%%~fi\!Verzeichnis!"  
    echo copy "!Verzeichnis!" "%%~fi\!Verzeichnis!"  
)
pause>nul
oder ohne setlocal EnableDelayedExpansion
@echo off
cls
for  /f "delims=" %%i in ('dir /b /ad') do (  
    echo md "%%~fi\%%i"  
    echo copy "%%i" "%%~fi\%%i"  
)
pause>nul
Mitglied: Fromeonly
Fromeonly 28.06.2016 um 11:31:23 Uhr
Goto Top
nicht ganz...

So wie ich das verstanden habe hast du:
- einen Ordner, in dem mehrere Unterordner sind
- die Batch im obersten Ordner liegen

und willst:
- In jedem Unterordner einen "Unterunterordner" gleichen Namens erstellen
- in den dann alle Daten des jeweiligen Unterordners in den dazugehörigen Unterunterordner verschoben werden
Mitglied: Fromeonly
Fromeonly 28.06.2016 um 11:35:17 Uhr
Goto Top
@ batchnewbie

Dein Ansatz sieht schon sehr vielversprechend aus und klappt auch fast,
es soll aber nichts kopiert werden sondern verschoben.
Ich habe mal copy durch move ersetzt, das klappt aber leider nicht.
Mitglied: batchnewbie
Lösung batchnewbie 28.06.2016 um 11:55:55 Uhr
Goto Top
Hi, versuche es damit:
@echo off & setlocal EnableDelayedExpansion
cls
for  /f "delims=" %%i in ('dir /b /ad') do (  
    set "Verzeichnis=%%i"  
    echo VerzeichnisName: !Verzeichnis!
    pushd "!Verzeichnis!"  
    echo md "!Verzeichnis!"  
    for /f "delims=" %%j in ('dir /b /a-d *.*') do (  
        set "Datei=%%j"  
        echo DateiName: "!Datei!"  
        echo move "!Datei!" "!Verzeichnis!"  
    )
    echo.---- 
    popd
)
pause>nul
das echo vor md (Zeile 07) & move (Zeile 11) entfernen ...
wenn du das ohne setlocal EnableDelayedExpansion brauchst, muss du es anpassen...
Mitglied: Fromeonly
Fromeonly 28.06.2016 um 12:15:13 Uhr
Goto Top
@ batchnewbie

Vielen Dank, das ist die Lösung !