¿Cómo puedo copiar archivos en el “más reciente subdirectorio” en un directorio utilizando un archivo por lotes?

StackOverflow https://stackoverflow.com/questions/848536

  •  21-08-2019
  •  | 
  •  

Pregunta

necesito para copiar archivos de la carpeta de construcción reciente a otra carpeta utilizada para la prueba. Estoy teniendo dificultades para conseguir el nombre de la carpeta de compilación más reciente.

Mi intento actual es la siguiente:

@for /D %%i in ('dir e:\builds\projectA\* /O:D') do set target=%%i
echo %target%
xcopy "%target%\*.*" \\devbox\projectA /y /s 
destino

Yo esperaba sería la carpeta recién creada desde la que entonces podría copiar los archivos. Sin embargo, cuando me hago eco de destino a la consola sólo dice:

/O:D'

¿Alguien sabe cómo puedo conseguir que esto funcione (o sabe de una alternativa)?

¿Fue útil?

Solución

Reemplazar el / D con / F y añadir / B al comando dir entre corchetes.

@for /F %%i in ('dir e:\builds\projectA\* /O:D /B') do set target=%%i
echo %target%
xcopy "%target%\*.*" \\devbox\projectA /y /s

Otros consejos

pushd E:\builds\projectA
for /f "delims=" %%d in ('dir /b /a:d /o:d') do @echo %%d>latest.txt
for /f "delims=" %%l in (latest.txt) do xcopy "%%l\*.*" \\devbox\projectA /y /s
del latest.txt
popd
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top