mover/cortar carpetas por lotes y su contenido a otra carpeta

mover/cortar carpetas por lotes y su contenido a otra carpeta

Tengo este script por lotes que me permite copiar carpetas y su contenido desde un archivo de texto. ¿Alguien podría ayudarme a ajustarlo para que mueva/corte las carpetas+contenido y no solo copie?

  set file_list=ready.txt
    set dest_folder=c:\small\final
    for /f "delims=" %%a in (%file_list%) do (
    xcopy /Y "%%a*" "%dest_folder%%%~pa"
    )

Respuesta1

Tenga en cuenta: no puede utilizar comodines con move.

(y por favor haga file_list-> dir_listpara mayor claridad).

@echo off
Setlocal EnableDelayedExpansion
set dir_list=ready.txt
set dest_folder=c:\small\final\ok
mkdir %dest_folder%
for /f "delims=" %%a IN (%dir_list%) do (
   set dir=%%a
   if "!dir:~-1!"=="\" set dir=!dir:~0,-1!
   move "!dir!" "%dest_folder%\"
)

Para directorios ready.txtcon cola final \, se \eliminará antes de move.


Editar:

Dado que está moviendo los directorios de una unidad a otra,no poderusar move. Aquí hay una solución con robocopy:

@echo off
Setlocal EnableDelayedExpansion
set dir_list=ready.txt
set dest_folder=d:\small\final\ok\
if "%dest_folder:~-1%"=="\" set dest_folder=%dest_folder:~0,-1%
for /f "delims=" %%a in (%dir_list%) do (
  set dir1=%%a
  if "!dir1:~-1!"=="\" set dir1=!dir1:~0,-1!
  for %%f in (!dir1!) do set dir2=%%~nxf
  robocopy "!dir1!" "%dest_folder%\!dir2!" /MOVE /E
)

Tenga en cuenta que robocopysolo puede copiar y mover directorios completos y no archivos individuales. Entonces tu ready.txtdebería solo consistir en directorios. Los remolques \están cuidados y se pueden mezclar.

Robocopynecesita el nombre completo del directorio para el nuevo directorio, es por eso que necesitamos la
for %%flínea - (para obtener la última parte del directorio del directorio de origen). Por lo tanto, necesita
robocopy c:\sub\meme d:\sub\meme. No puedes hacerlo robocopy c:\sub\meme d:\sub.

Puede probar este archivo por lotes colocándolo echoantes del robocopyarchivo -
(y antes de moveen el ejemplo anterior).

información relacionada