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:
- Si existe
C:/myprogram/sync/data.handler
, exit; - Si
C:/myprogram/html/data.sql
no existe, salga; - En
C:/myprogram/sync/
borra todos los archivos y carpetas excepto (test
,test3
ytest3
) - Copie
C:/myprogram/html/data.sql
enC:/myprogram/sync/
- 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