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

Printed on: April 26, 2024 at 20:04 o'clock

Member: Larmina
Larmina Jun 28, 2016 at 08:53:40 (UTC)
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?
Member: batchnewbie
Solution batchnewbie Jun 28, 2016 updated at 09:13:18 (UTC)
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
Member: Fromeonly
Fromeonly Jun 28, 2016 at 09:31:23 (UTC)
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
Member: Fromeonly
Fromeonly Jun 28, 2016 at 09:35:17 (UTC)
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.
Member: batchnewbie
Solution batchnewbie Jun 28, 2016 at 09:55:55 (UTC)
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...
Member: Fromeonly
Fromeonly Jun 28, 2016 at 10:15:13 (UTC)
Goto Top
@ batchnewbie

Vielen Dank, das ist die Lösung !