¿Cómo hacer que los nombres de archivos solo se copien en otra carpeta usando el archivo por lotes cmd?

¿Cómo hacer que los nombres de archivos solo se copien en otra carpeta usando el archivo por lotes cmd?

¿Alguien puede enseñarme cómo obtener solo el nombre del archivo usando un archivo por lotes? Necesito hacer un bucle para comprobar si existe en otra carpeta para no tener que copiarla.

Respuesta1

En el siguiente FORbucle obtienes el nombre del archivo y la extensión:

for %%f in ("C:\Source\*") do ( echo File: %%~nxf )

Para verificar si su archivo existe en el directorio de destino y copiarlo si no es así:

for %%f in ("C:\Source\*") do (
  if not exist "C:\Target\%%~nxf" (
    echo Copy from source to target: %%~nxf
    copy "%%f" "C:\Target\%%~nxf" )
)

Para obtener más FORparámetros de bucle, consulte FOR /?en la línea de comando.

información relacionada