none
bat mover ficheros RRS feed

  • Pregunta

  • Hola a todos/as

    Tengo un .bat que mueve unos determinados ficheros de una ruta a otra. El bat funciona bien cuando hay ficheros en la carpeta, pero si no los hay, casca. Lo que he intentado entonces, es mirar si la carpeta está vacía antes de moverlos. Mirando por internet, en multitud de páginas, para comprobar que una carpeta está vacía, lo hacen mediante un bucle For. El código que uso para hacerlo, según lo que he visto investigando, es:

    for /F %%i in ('dir /b /a "E:\IO\DataOut\EDI.Confirm\EDI_Confirm.DE04*.*"') do 
    (
    MOVE /y E:\IO\DataOut\EDI.Confirm\EDI_Confirm.DE04*.* E:\IO\DataOut\Historico\EDI.Confirm\
    )

    Sin embargo, cuando ejecuto el .bat, los ficheros no los mueve. 

    Alguna idea de qué estoy haciendo mal??

    Saludos!

    jueves, 21 de abril de 2016 14:58

Respuestas

  • Perdone no me acordaba ya de este post, y acabo de verlo.

    for /r %%i in (E:\IO\DataOut\EDI.Confirm\EDI_ShippingConfirm.DE04\*.*) do
    MOVE
    /y %%i E:\IO\DataOut\Historico\EDI.Confirm\

    Pruebe lógicamente debería funcionar, yo acostumbro a ponerlo todo en la misma línea, si queda muy larga ya lo divido.

    EDI_ShippingConfirm.DE04 -- es un directorio claro, añadí la barra.

    Le faltaba %%i que es el archivo a copiar variable que se usa para todos los archivos uno tras otro.

    Saludos.


    • Marcado como respuesta CrepuX miércoles, 4 de mayo de 2016 16:45
    domingo, 1 de mayo de 2016 21:52

Todas las respuestas

  • Hola a todos/as

    Pongo esta consulta aquí ya que no encuentro el foro correspondiente. Estoy intentando hacer un .bat que mira si hay unos determinados ficheros en una ruta y los mueve a otra. El bat funciona bien cuando hay ficheros en la carpeta, pero si no los hay, casca. Lo que he intentado entonces, es mirar si la carpeta está vacía antes de moverlos. Mirando por internet, en multitud de páginas, para comprobar que una carpeta está vacía, lo hacen mediante un bucle For. El código que uso para hacerlo, según lo que he visto investigando, es:

    for /F %%i in ('dir /b /a "E:\IO\DataOut\EDI.Confirm\EDI_Confirm.DE04*.*"') do 
    (
    MOVE /y E:\IO\DataOut\EDI.Confirm\EDI_Confirm.DE04*.* E:\IO\DataOut\Historico\EDI.Confirm\
    )

    Sin embargo, cuando ejecuto el .bat, los ficheros no los mueve. Si quito el for y solo dejo el move, funciona, pero cascaría si la carpeta está vacía.

    Alguna idea de qué estoy haciendo mal??

    Saludos!

    • Combinado Enrique M. Montejo jueves, 21 de abril de 2016 16:54 Pregunta relacionada con Scripting.
    jueves, 21 de abril de 2016 14:31
  • Gracias walter!!

    Planteo allí la pregunta.

    Saludos!

    jueves, 21 de abril de 2016 14:50
  • Revise la síntesis del comando: FOR %variable IN (conjunto) DO comando [par metros]

    for /r %%j in (*.*) do move  %%j parámetros

    Con el bat en el directorio de origen, pruebe.


    • Editado ytvmeem viernes, 22 de abril de 2016 5:57
    jueves, 21 de abril de 2016 17:21
  • Muchas gracias por la respuesta ytvmeem!

    Lo pruebo y le digo.

    Saludos!

    viernes, 22 de abril de 2016 7:40
  • Hola ytvmeem!

    Tiene que estar forzosamente el .bat en el directorio origen?? He construido este .bat, pero no mueve los ficheros. No se si tengo algo mal:

    for /r %%i in (E:\IO\DataOut\EDI.Confirm\EDI_ShippingConfirm.DE04*.*) do
    (
    MOVE /y E:\IO\DataOut\EDI.Confirm\EDI_ShippingConfirm.DE04*.* E:\IO\DataOut\Historico\EDI.Confirm
    )

    Si pudiera darme una pista, soy todo ojos

    Saludos!

    martes, 26 de abril de 2016 12:32
  • for /r %%i in (E:\IO\DataOut\EDI.Confirm\EDI_ShippingConfirm.DE04\*.*) do
    MOVE
    /y %%i E:\IO\DataOut\Historico\EDI.Confirm\

    Pruebe lógicamente debería funcionar, yo acostumbro a ponerlo todo en la misma línea, si queda muy larga ya lo divido.

    EDI_ShippingConfirm.DE04 -- es un directorio claro, añadí la barra.

    Le faltaba %%i que es el archivo a copiar variable que se usa para todos los archivos uno tras otro.

    Saludos.

    domingo, 1 de mayo de 2016 21:50
  • Perdone no me acordaba ya de este post, y acabo de verlo.

    for /r %%i in (E:\IO\DataOut\EDI.Confirm\EDI_ShippingConfirm.DE04\*.*) do
    MOVE
    /y %%i E:\IO\DataOut\Historico\EDI.Confirm\

    Pruebe lógicamente debería funcionar, yo acostumbro a ponerlo todo en la misma línea, si queda muy larga ya lo divido.

    EDI_ShippingConfirm.DE04 -- es un directorio claro, añadí la barra.

    Le faltaba %%i que es el archivo a copiar variable que se usa para todos los archivos uno tras otro.

    Saludos.


    • Marcado como respuesta CrepuX miércoles, 4 de mayo de 2016 16:45
    domingo, 1 de mayo de 2016 21:52
  • Perdonado queda!

    Muchísimas gracias por su respuesta y ayuda. Me ha servido de mucho.

    Saludos!

    miércoles, 4 de mayo de 2016 16:45