¿Cómo puedo copiar archivos en el “más reciente subdirectorio” en un directorio utilizando un archivo por lotes?
-
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)?
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