Esto es lo que me da bitacora.txt
Cita: 04/01/2008 - 19:32:31,73 - ERROR: El archivo no existe
04/01/2008 - 19:32:31,74 - F I N D E E J E C U C I O N C O N E R R O R E S
04/01/2008 - 19:32:31,74 - ERRORLEVEL = 0
04/01/2008 - 19:32:31,83 - ERRORLEVEL = 12
Por lo que creo que es un problema de configuración del entorno de cada PC.
Intenta probar con:
Código:
rem al principio del script
@echo off
rem
setlocal
rem ....
:Error
echo %date% - %time% - ERROR: El archivo %1 no existe >> Bitacora.txt
echo %date% - %time% - F I N D E E J E C U C I O N C O N E R R O R E S >> Bitacora.txt
echo %date% - %time% - ERRORLEVEL = %ERRORLEVEL% >> Bitacora.txt
set ERRORLEVEL=12
echo %date% - %time% - ERRORLEVEL = %ERRORLEVEL% >> Bitacora.txt
rem
endlocal
exit /b
Cita: C:\Documents and Settings\Administrador>setlocal /?
Comienza la sección de cambios locales de entorno en un archivo por lotes.
Los cambios de entorno hechos después de que se haya emitido SETLOCAL son
locales en el archivo por lotes. ENDLOCAL debe ser emitido para restaurar
la configuración anterior. Cuando se llega al final de un archivo de proceso
por lotes, se ejecuta un ENDLOCAL implícito para cualquier comando SETLOCAL
pendiente que se haya emitido para este archivo de proceso por lotes.
SETLOCAL
Si las extensiones de comandos están habilitadas SETLOCAL cambia así:
Ahora el comando del archivo por lotes SETLOCAL acepta argumentos opcionales:
ENABLEEXTENSIONS / DISABLEEXTENSIONS
Habilitar o deshabilitar las extensiones del procesador
de comandos. Ver CMD /? para más detalles.
ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION
Habilita o deshabilita la expansión de la variable de entorno
retardada. Ver SET /? para más detalles. Estas modificaciones
duran hasta que coincida el comando ENDLOCAL, independientemente
de su configuración anterior para el comando SETLOCAL.
El comando SETLOCAL establecerá el valor ERRORLEVEL si se diera un argumento.
Será cero si se da uno de los dos argumentos válidos y el otro no. Puede usar
esto en los archivos de proceso por lotes para determinar si las extensiones
están disponibles usando la siguiente técnica:
VERIFY OTHER 2>null
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 echo No puede activar las extensiones
Esto funciona porque en las versiones anteriores de CMD.EXE, SETLOCAL
no establecía el valor de ERRORLEVEL. El comando VERIFY con un argumento
erróneo inicializa el valor ERRORLEVEL a un valor distinto de cero.
Cuentanos y suerte