verificar validar una script programacion existe ejemplos comandos carpeta batch bat avanzados archivos archivo windows batch-file cmd

windows - validar - si existe archivo cmd



¿Cómo verificar si un archivo existe en un archivo.BAT de DOS(Windows Command Prompt)? (3)

Tengo que crear un archivo .BAT que hace esto:

  1. Si existe C:/myprogram/sync/data.handler , exit;
  2. Si C:/myprogram/html/data.sql no existe, salga;
  3. En C:/myprogram/sync/ borra todos los archivos y carpetas excepto ( test , test3 y test3 )
  4. Copie C:/myprogram/html/data.sql en C:/myprogram/sync/
  5. Llame a otro archivo por lotes con la opción sync.bat myprogram.ini .

Si fue en el entorno Bash, fue fácil para mí, pero no sé cómo probar si existe un archivo o una carpeta y si es un archivo o una carpeta.


Aquí hay un buen ejemplo de cómo hacer un comando si un archivo existe o no:

if exist C:/myprogram/sync/data.handler echo Now Exiting && Exit if not exist C:/myprogram/html/data.sql Exit

Tomaremos esos tres archivos y los colocaremos en un lugar temporal. Después de eliminar la carpeta, restaurará esos tres archivos.

xcopy "test" "C:/temp" xcopy "test2" "C:/temp" del C:/myprogram/sync/ xcopy "C:/temp" "test" xcopy "C:/temp" "test2" del "c:/temp"

Use el comando XCOPY :

xcopy "C:/myprogram/html/data.sql" /c /d /h /e /i /y "C:/myprogram/sync/"

Explicaré lo que significa /c /d /h /e /i /y :

/C Continues copying even if errors occur. /D:m-d-y Copies files changed on or after the specified date. If no date is given, copies only those files whose source time is newer than the destination time. /H Copies hidden and system files also. /E Copies directories and subdirectories, including empty ones. Same as /S /E. May be used to modify /T. /T Creates directory structure, but does not copy files. Does not include empty directories or subdirectories. /T /E includes /I If destination does not exist and copying more than one file, assumes that destination must be a directory. /Y Suppresses prompting to confirm you want to overwrite an existing destination file. `To see all the commands type`xcopy /? in cmd

Llame a otro archivo por lotes con la opción sync.bat myprogram.ini.

No estoy seguro de lo que quieres decir con esto, pero si solo quieres abrir ambos archivos, simplemente pones la ruta del archivo como

Path/sync.bat Path/myprogram.ini

Si fue en el entorno Bash, fue fácil para mí, pero no sé cómo probar si existe un archivo o una carpeta y si es un archivo o una carpeta.

Está utilizando un archivo por lotes. Usted mencionó anteriormente que debe crear un archivo .bat para usar esto:

Tengo que crear un archivo .BAT que hace esto:


Puede usar IF EXIST para verificar un archivo:

IF EXIST "filename" ( REM Do one thing ) ELSE ( REM Do another thing )

Si desea buscar una unidad o directorio, consulte http://support.microsoft.com/kb/65994 para ver ejemplos


Tipo IF /? para obtener ayuda sobre si, se explica claramente cómo usar IF EXIST.

Para eliminar un árbol completo, excepto algunas carpetas, consulte la respuesta a esta pregunta: Script por lotes de Windows para eliminar todo en una carpeta, excepto uno

Finalmente, copiar solo significa llamar a COPY y llamar a otro archivo de bat se puede hacer así:

MYOTHERBATFILE.BAT sync.bat myprogram.ini