Tags Palabras claves

Ejecutar fichero .bat al cerrar windows 98

25/01/2008 - 23:46 por Francesc | Informe spam
Me interesaria saber como se puede ejecutar automaticamente un fichero .bat
al cerrarse el Windows 98 SE

Ya se que la copia puede realizarse al inicio poniendo la secuencia en el
autoexec, pero lo que me interesa es hacer la copia del trabajo realizado en
la jornada.

Gracias de antemano.
Francesc

Preguntas similare

Leer las respuestas

#6 Francesc
05/02/2008 - 22:40 | Informe spam
Hola Miguel:

Me interesaba precisamente el parametro /M pero resulta que me sigue
apareciendo la indicacion de que copia todos los ficheros y no solamente los
modificados.

¿Qué he hecho mal?

Francesc
"Miguel Mollejo Sánchez" <mmollejo%%@%%hotmail.com> escribió en el mensaje
news:%
Los parametros de XCOPY hacen lo siguiente... me parecieron los mas
adecuados para hacer una copia, pero segun como quieras hacerla tu,
considera cuales hay que poner y cuales no (si la haces con XCOPY, vaya):
- /M copia solo los archivos con el atributo de "modificado" (A), asi
por ejemplo, si simplemente se copia una carpeta sobre otra para hacer la
copia de seguridad, esto solo copiaria los archivos modificados, ahorrando
tiempo. Es "opcional", digamos, y segun como hagas la copias deberias o no
utilizarlo (si por ejemplo borras la copia anterior antes de empezar la
nueva copia, no deberias utilizarlo, o si no haces la copia siempre en el
mismo sitio).
- /S /E copia todos los subdirectorios incluidos los vacios. Para hacer
una copia de archivos incluyendo las subcarpetas.
- /V verifica que los archivos se escriben correctamente en la carpeta
o unidad de destino.
- /F muestra todos los nombres de los archivos que se copian, para ver
si falta alguno o si se copian todos los que se quiere.
- /H copia tambien archivos ocultos, por si fuera necesario.
- /Y sobreescribe los archivos del destino sin preguntar, por si por
ejemplo se hace siempre la copia sobre el mismo destino.

Me alegro de que sirviera la idea :-)

Saludos. Miguel.


"Francesc" escribió en el mensaje
news:ev$
Hola Miguel:

Ya lo he hecho y funciona correctamente.

Por cietto, una curiosidad: ¿Para qué sirven los parámetros "/M /S /E /V
/F /H /Y"

Muchas gracias por tu ayuda.


Francesc
"Miguel Mollejo Sánchez" <mmollejo%%@%%hotmail.com> escribió en el
mensaje news:%
Hola...

No se si te sirve la idea, pero ¿Valdría que en vez de que se ejecute
automáticamente un archivo .BAT cuando elijas cerrar Windows 98, tu
ejecutaras el archivo .BAT (por ejemplo, poniéndole un acceso directo en
el Escritorio para facilitarlo o algo así...) y que al terminar lo que
tenga que hacer ese archivo BAT, Windows 98 se cerrara?

Si eso te sirve, bastaría con que la última línea de tu archivo BAT
fuera:
C:\Windows\Rundll32.exe shell32.dll,SHExitWindowsEx 1 para
apagar, o
C:\Windows\Rundll32.exe shell32.dll,SHExitWindowsEx 2 para
reiniciar.
Despues de esa linea, inmediatamente usar EXIT para que se cierre
la ventana de MS-DOS del programa BAT y se pueda cerrar Windows (si la
ventana se queda abierta, no se cerraría Windows, me parece).

Un ejemplo MUY simplificado:
@ECHO OFF
ECHO Copiando el trabajo...
XCOPY C:\MISDOC~1\*.* D:\COPIAS /M /S /E /V /F /H /Y
IF ERRORLEVEL 1 GOTO Fallo
IF ERRORLEVEL 0 GOTO Apagar

: Fallo
ECHO Ha habido algun problema al copiar.
PAUSE
EXIT

: Apagar
ECHO La copia ha terminado bien y apagamos.
C:\Windows\Rundll32.exe shell32.dll,SHExitWindowsEx 1
EXIT


Saludos. Miguel.


"Francesc" <> escribió en el mensaje
news:
Me interesaria saber como se puede ejecutar automaticamente un fichero
.bat al cerrarse el Windows 98 SE

Ya se que la copia puede realizarse al inicio poniendo la secuencia en
el
autoexec, pero lo que me interesa es hacer la copia del trabajo
realizado
en la jornada.

Gracias de antemano.
Francesc












Respuesta Responder a este mensaje
#7 Miguel Mollejo Sánchez
06/02/2008 - 01:11 | Informe spam
Hola :-)

Aquí acabo de probar y ha funcionado bien... Es decir, al poner el
parámetro /M copia sólo los archivos con el atributo "A" de modificado
establecido y les quita el atributo de modificado. Por ejemplo, la primera
vez, copia todos y si lo tecleo seguidamente no copia ninguno. Si modifico
uno y lo tecleo otra vez, sólo copia ese uno.

Lo único que se me ocurre es que algo "modifique" todos los archivos
entre copia y copia (¿qué clase de archivos son? ¿Pertenecen todos al mismo
"documento", "base de datos" o algo así?), o le establezca el atributo "A"
(por ejemplo, moverlos o copiarlos desde otra ubicación antes de usar
XCOPY)... o bien que en la orden de XCOPY no desactive el atributo "A" (esté
a la vez puesto el parámetro /A)

Envíame si quieres tu archivo BAT al correo (la dirección de este
mensaje, quitando los %) y lo miro a ver si encuentro alguna causa. Una
prueba podría ser quitar momentaneamente la orden de apagado en el archivo
BAT, y ejecutarlo dos veces seguidas a ver si ocurre lo mismo, observando a
la vez los atributos con el Explorador de Windows o con el comando ATTRIB de
MS-DOS, para ver si se desactivan correctamente después de la copia o si
vuelven a activarse por algo.

Saludos. Miguel.


"Francesc" <> escribió en el mensaje
news:%2363%234%
Hola Miguel:

Me interesaba precisamente el parametro /M pero resulta que me sigue
apareciendo la indicacion de que copia todos los ficheros y no solamente
los modificados.

¿Qué he hecho mal?

Francesc
"Miguel Mollejo Sánchez" <> escribió en el mensaje
news:%
Los parametros de XCOPY hacen lo siguiente... me parecieron los mas
adecuados para hacer una copia, pero segun como quieras hacerla tu,
considera cuales hay que poner y cuales no (si la haces con XCOPY, vaya):
- /M copia solo los archivos con el atributo de "modificado" (A), asi
por ejemplo, si simplemente se copia una carpeta sobre otra para hacer la
copia de seguridad, esto solo copiaria los archivos modificados,
ahorrando tiempo. Es "opcional", digamos, y segun como hagas la copias
deberias o no utilizarlo (si por ejemplo borras la copia anterior antes
de empezar la nueva copia, no deberias utilizarlo, o si no haces la copia
siempre en el mismo sitio).
- /S /E copia todos los subdirectorios incluidos los vacios. Para
hacer una copia de archivos incluyendo las subcarpetas.
- /V verifica que los archivos se escriben correctamente en la carpeta
o unidad de destino.
- /F muestra todos los nombres de los archivos que se copian, para ver
si falta alguno o si se copian todos los que se quiere.
- /H copia tambien archivos ocultos, por si fuera necesario.
- /Y sobreescribe los archivos del destino sin preguntar, por si por
ejemplo se hace siempre la copia sobre el mismo destino.

Me alegro de que sirviera la idea :-)

Saludos. Miguel.


"Francesc" <> escribió en el mensaje
news:ev$
Hola Miguel:

Ya lo he hecho y funciona correctamente.

Por cietto, una curiosidad: ¿Para qué sirven los parámetros "/M /S /E /V
/F /H /Y"

Muchas gracias por tu ayuda.


Francesc
"Miguel Mollejo Sánchez" <> escribió en el mensaje
news:%
Hola...

No se si te sirve la idea, pero ¿Valdría que en vez de que se
ejecute automáticamente un archivo .BAT cuando elijas cerrar Windows
98, tu ejecutaras el archivo .BAT (por ejemplo, poniéndole un acceso
directo en el Escritorio para facilitarlo o algo así...) y que al
terminar lo que tenga que hacer ese archivo BAT, Windows 98 se cerrara?

Si eso te sirve, bastaría con que la última línea de tu archivo BAT
fuera:
C:\Windows\Rundll32.exe shell32.dll,SHExitWindowsEx 1
para apagar, o
C:\Windows\Rundll32.exe shell32.dll,SHExitWindowsEx 2
para reiniciar.
Despues de esa linea, inmediatamente usar EXIT para que se
cierre la ventana de MS-DOS del programa BAT y se pueda cerrar Windows
(si la ventana se queda abierta, no se cerraría Windows, me parece).

Un ejemplo MUY simplificado:
@ECHO OFF
ECHO Copiando el trabajo...
XCOPY C:\MISDOC~1\*.* D:\COPIAS /M /S /E /V /F /H /Y
IF ERRORLEVEL 1 GOTO Fallo
IF ERRORLEVEL 0 GOTO Apagar

: Fallo
ECHO Ha habido algun problema al copiar.
PAUSE
EXIT

: Apagar
ECHO La copia ha terminado bien y apagamos.
C:\Windows\Rundll32.exe shell32.dll,SHExitWindowsEx 1
EXIT


Saludos. Miguel.


"Francesc" <> escribió en el mensaje
news:
Me interesaria saber como se puede ejecutar automaticamente un fichero
.bat al cerrarse el Windows 98 SE

Ya se que la copia puede realizarse al inicio poniendo la secuencia en
el
autoexec, pero lo que me interesa es hacer la copia del trabajo
realizado
en la jornada.

Gracias de antemano.
Francesc
Respuesta Responder a este mensaje
#8 Miguel Mollejo Sánchez
06/02/2008 - 02:01 | Informe spam
Hola :-)

Los comandos de MS-DOS al terminar, normalmente devuelven un valor de
ERRORLEVEL, que es un número entero positivo o 0. Este número se suele
utilizar para indicar si han terminado de hacer su trabajo correctamente, si
ocurrió un error y cuál fue...

El número que de cada programa para indicar si ha terminado
correctamente o con error depende del propio programa (es decir, quien lo
programara indicaría los números), por lo que para averiguar qué significa
un número para cada programa habría que consultar la documentación del
programa. Lo que normalmente sí se "respeta" es que el 0 indica que terminó
correctamente y los demás números indican algún tipo de error. Pero repito,
depende del programa y no tiene porque ser así. Por ejemplo SCANDISK da 0 si
terminó bien y no había errores y 255 (creo recordar) si terminó bien y
corrigió todos los errores, y sin embargo parece lógico que ambas
situaciones se querrían tratar como buenas.

Una vez que sabes los números de error que va a devolver un programa,
puedes colocar, *justo después* de su orden, varias lineas
IF ERRORLEVEL n orden

Lo que hacen estas lineas es ejecutar la "orden" que va después del
número si el errorlevel es *mayor o igual* que "n". Fíjate especialmente que
la orden se ejecuta si el errorlevel es *mayor o igual*, no si es *igual*.
Es por ello que todas las órdenes errorlevel han de colocarse ordenadas por
el número "n" en orden descendente (desde la más alta que quieras considerar
hasta 0), para que si por ejemplo tenemos:
PROGRAMA.EXE /H /V
IF ERRORLEVEL 3 PROGRAMA /Error3
IF ERRORLEVEL 1 PROGRAMA /Error1
IF ERRORLEVEL 0 PROGRAMA /Error0

Suponemos que 3 es el máximo errorlevel que devuelve nuestro programa y
que en el ejemplo devuelve un 2:
- Si errorlevel es mayor o igual que 3 ejecutar PROGRAMA /Error3
-> No se ejecuta porque el errorlevel es 2 (menor que 3)
- Si errorlevel es mayor o igual que 1 ejecutar PROGRAMA /Error1
-> Si se ejecuta porque el errorlevel es 2 (mayor o igual que
1)
- Si errorlevel es mayor o igual que 0 ejecutar PROGRAMA /Error0
-> *También se ejecuta* porque el errorlevel es 2 (mayor o
igual que 0)

Hay que tener cuidado de que no se ejecuten todos los IF ERRORLEVEL que
están por debajo del que debería ejecutarse. Para ello se pueden hacer dos
cosas. La primera es no poner órdenes de programas después de IF ERRORLEVEL
n, sino utilizar órdenes GOTO (ir a una etiqueta) y poner aquellas órdenes
que nos interesen en la parte del programa correspondiente a la etiqueta,
como ocurría en el ejemplo que puse en el mensaje anterior. O bien "anidar"
los IF ERRORLEVEL de la siguiente forma:
PROGRAMA.EXE /H /V
IF ERRORLEVEL 3 PROGRAMA /Error3
IF ERRORLEVEL 1 IF NOT ERRORLEVEL 3 PROGRAMA /Error1
IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 PROGRAMA /Error0

Fíjate que en este último ejemplo, si pusieramos IF ERRORLEVEL 1 IF NOT
ERRORLEVEL 2 PROGRAMA /Error1, ninguna de las lineas ejecutaría si el
errorlevel es 2, y se saltaría todas las lineas IF ERRORLEVEL, lo cual no
suele ser lo deseable.

La mejor forma, en mi opinión, es la de utilizar órdenes GOTO y luego en
las etiquetas poner las órdenes de programas que se quieran (como venía en
el ejemplo del mensaje anterior), y además evitar que la ejecución se salte
todas las lineas inadvertidamente poniendo un último GOTO al final:
PROGRAMA.EXE /H /V
IF ERRORLEVEL 3 GOTO Error3
IF ERRORLEVEL 2 GOTO Error1o2
IF ERRORLEVEL 1 GOTO Error1o2
IF ERRORLEVEL 0 GOTO Error0
GOTO ErrorInesperado <- Nunca debería llegar aquí, pero por si
acaso, un GOTO sin condición, para que no
salte
inadvertidamente a ejecutar lo que esté por debajo, en este caso lo de
la etiqueta :Error3

:Error3
PROGRAMA.EXE /Error3
GOTO OtroSitio

:Error1o2
PROGRAMA.EXE /Error1
EXIT

:Error0
PROGRAMA.EXE /Error0
GOTO OtroSitio

:ErrorInesperado
ECHO El programa no funciona bien o el programador se ha equivocado.
EXIT


Y eso es todo, creo... no se si lo he liado mucho, o más que lo debía.
Espero que quede mas o menos claro el uso de los IF ERRORLEVEL n, pero si
tuvieras alguna duda, no tengas reparo en volver a escribir, o en escribirme
al correo (el de este mensaje, pero si los %).

Ah, y además IF se puede usar con más cosas, como IF EXIST, IF parámetro
== parámetro ... y en Windows 2000 y XP, aún hay más posibilidades.

Saludos. Miguel.


<> escribió en el mensaje
news:
Hola Miguel acabo de leer este hilo... y me interesan estas lineas del
codigo, ya que soy novato en esto del batch, y bueno, entiendo todo el
codigo excepto estas lineas:
XCOPY C:\MISDOC~1\*.* D:\COPIAS /M /S /E /V /F /H /Y
IF ERRORLEVEL 1 GOTO Fallo
IF ERRORLEVEL 0 GOTO Apagar

Concretamente las 2 ultimas, los IF´s como funcionan esos? me refiero
a: errorlevel1 o errorlevel 0... como sabes cual es el que indica el
error...y en fin.. todos los comandos lo permiten, añadiendo eso,
llevarte a la parde de ":fallo" o a la de ":correcto" ¿?
Si pudieras explicarmelo te lo agradeceria

Saludos, Adrian
Respuesta Responder a este mensaje
#9 adrian.domenech
06/02/2008 - 18:04 | Informe spam
On 6 feb, 02:01, "Miguel Mollejo Sánchez" <mmollejo%%@%%hotmail.com>
wrote:
Hola :-)

Los comandos de MS-DOS al terminar, normalmente devuelven un valor de
ERRORLEVEL, que es un número entero positivo o 0. Este número se suele
utilizar para indicar si han terminado de hacer su trabajo correctamente, si
ocurrió un error y cuál fue...

El número que de cada programa para indicar si ha terminado
correctamente o con error depende del propio programa (es decir, quien lo
programara indicaría los números), por lo que para averiguar qué significa
un número para cada programa habría que consultar la documentación del
programa. Lo que normalmente sí se "respeta" es que el 0 indica que terminó
correctamente y los demás números indican algún tipo de error. Pero repito,
depende del programa y no tiene porque ser así. Por ejemplo SCANDISK da 0 si
terminó bien y no había errores y 255 (creo recordar) si terminó bien y
corrigió todos los errores, y sin embargo parece lógico que ambas
situaciones se querrían tratar como buenas.

Una vez que sabes los números de error que va a devolver un programa,
puedes colocar, *justo después* de su orden, varias lineas
IF ERRORLEVEL n orden

Lo que hacen estas lineas es ejecutar la "orden" que va después del
número si el errorlevel es *mayor o igual* que "n". Fíjate especialmente que
la orden se ejecuta si el errorlevel es *mayor o igual*, no si es *igual*.
Es por ello que todas las órdenes errorlevel han de colocarse ordenadas por
el número "n" en orden descendente (desde la más alta que quieras considerar
hasta 0), para que si por ejemplo tenemos:
PROGRAMA.EXE /H /V
IF ERRORLEVEL 3 PROGRAMA /Error3
IF ERRORLEVEL 1 PROGRAMA /Error1
IF ERRORLEVEL 0 PROGRAMA /Error0

Suponemos que 3 es el máximo errorlevel que devuelve nuestro programa y
que en el ejemplo devuelve un 2:
- Si errorlevel es mayor o igual que 3 ejecutar PROGRAMA /Error3
-> No se ejecuta porque el errorlevel es 2 (menor que 3)
- Si errorlevel es mayor o igual que 1 ejecutar PROGRAMA /Error1
-> Si se ejecuta porque el errorlevel es 2 (mayor o igual que
1)
- Si errorlevel es mayor o igual que 0 ejecutar PROGRAMA /Error0
-> *También se ejecuta* porque el errorlevel es 2 (mayor o
igual que 0)

Hay que tener cuidado de que no se ejecuten todos los IF ERRORLEVEL que
están por debajo del que debería ejecutarse. Para ello se pueden hacer dos
cosas. La primera es no poner órdenes de programas después de IF ERRORLEVEL
n, sino utilizar órdenes GOTO (ir a una etiqueta) y poner aquellas órdenes
que nos interesen en la parte del programa correspondiente a la etiqueta,
como ocurría en el ejemplo que puse en el mensaje anterior. O bien "anidar"
los IF ERRORLEVEL de la siguiente forma:
PROGRAMA.EXE /H /V
IF ERRORLEVEL 3 PROGRAMA /Error3
IF ERRORLEVEL 1 IF NOT ERRORLEVEL 3 PROGRAMA /Error1
IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 PROGRAMA /Error0

Fíjate que en este último ejemplo, si pusieramos IF ERRORLEVEL 1 IF NOT
ERRORLEVEL 2 PROGRAMA /Error1, ninguna de las lineas ejecutaría si el
errorlevel es 2, y se saltaría todas las lineas IF ERRORLEVEL, lo cual no
suele ser lo deseable.

La mejor forma, en mi opinión, es la de utilizar órdenes GOTO y luego en
las etiquetas poner las órdenes de programas que se quieran (como venía en
el ejemplo del mensaje anterior), y además evitar que la ejecución se salte
todas las lineas inadvertidamente poniendo un último GOTO al final:
PROGRAMA.EXE /H /V
IF ERRORLEVEL 3 GOTO Error3
IF ERRORLEVEL 2 GOTO Error1o2
IF ERRORLEVEL 1 GOTO Error1o2
IF ERRORLEVEL 0 GOTO Error0
GOTO ErrorInesperado <- Nunca debería llegar aquí, pero por si
acaso, un GOTO sin condición, para que no
salte
inadvertidamente a ejecutar lo que esté por debajo, en este caso lo de
la etiqueta :Error3

:Error3
PROGRAMA.EXE /Error3
GOTO OtroSitio

:Error1o2
PROGRAMA.EXE /Error1
EXIT

:Error0
PROGRAMA.EXE /Error0
GOTO OtroSitio

:ErrorInesperado
ECHO El programa no funciona bien o el programador se ha equivocado.
EXIT

Y eso es todo, creo... no se si lo he liado mucho, o más que lo debía.
Espero que quede mas o menos claro el uso de los IF ERRORLEVEL n, pero si
tuvieras alguna duda, no tengas reparo en volver a escribir, o en escribirme
al correo (el de este mensaje, pero si los %).

Ah, y además IF se puede usar con más cosas, como IF EXIST, IF parámetro
== parámetro ... y en Windows 2000 y XP, aún hay más posibilidades.

Saludos. Miguel.

<> escribió en el mensajenews:
Hola Miguel acabo de leer este hilo... y me interesan estas lineas del
codigo, ya que soy novato en esto del batch, y bueno, entiendo todo el
codigo excepto estas lineas:
XCOPY C:\MISDOC~1\*.* D:\COPIAS /M /S /E /V /F /H /Y
IF ERRORLEVEL 1 GOTO Fallo
IF ERRORLEVEL 0 GOTO Apagar

Concretamente las 2 ultimas, los IFŽs como funcionan esos? me refiero
a: errorlevel1 o errorlevel 0... como sabes cual es el que indica el
error...y en fin.. todos los comandos lo permiten, añadiendo eso,
llevarte a la parde de ":fallo" o a la de ":correcto" ¿?
Si pudieras explicarmelo te lo agradeceria

Saludos, Adrian



Perfecto, muchisimas gracias, me ha servido de mucho la explicacion..
es más voy a utilizarla ya ^^

Saludos, Adrián.
Respuesta Responder a este mensaje
#10 Francesc
06/02/2008 - 18:42 | Informe spam
Hola Miguel:

Efectivamente: hechas las pruebas es como tu dices. La segunda vez ya solo
copia los que han sido modificados.

Nuevamente, muchas gracias.

Francesc
"Miguel Mollejo Sánchez" <mmollejo%%@%%hotmail.com> escribió en el mensaje
news:%
Hola :-)

Aquí acabo de probar y ha funcionado bien... Es decir, al poner el
parámetro /M copia sólo los archivos con el atributo "A" de modificado
establecido y les quita el atributo de modificado. Por ejemplo, la primera
vez, copia todos y si lo tecleo seguidamente no copia ninguno. Si modifico
uno y lo tecleo otra vez, sólo copia ese uno.

Lo único que se me ocurre es que algo "modifique" todos los archivos
entre copia y copia (¿qué clase de archivos son? ¿Pertenecen todos al
mismo "documento", "base de datos" o algo así?), o le establezca el
atributo "A" (por ejemplo, moverlos o copiarlos desde otra ubicación antes
de usar XCOPY)... o bien que en la orden de XCOPY no desactive el atributo
"A" (esté a la vez puesto el parámetro /A)

Envíame si quieres tu archivo BAT al correo (la dirección de este
mensaje, quitando los %) y lo miro a ver si encuentro alguna causa. Una
prueba podría ser quitar momentaneamente la orden de apagado en el archivo
BAT, y ejecutarlo dos veces seguidas a ver si ocurre lo mismo, observando
a la vez los atributos con el Explorador de Windows o con el comando
ATTRIB de MS-DOS, para ver si se desactivan correctamente después de la
copia o si vuelven a activarse por algo.

Saludos. Miguel.


"Francesc" <> escribió en el mensaje
news:%2363%234%
Hola Miguel:

Me interesaba precisamente el parametro /M pero resulta que me sigue
apareciendo la indicacion de que copia todos los ficheros y no solamente
los modificados.

¿Qué he hecho mal?

Francesc
"Miguel Mollejo Sánchez" <> escribió en el mensaje
news:%
Los parametros de XCOPY hacen lo siguiente... me parecieron los mas
adecuados para hacer una copia, pero segun como quieras hacerla tu,
considera cuales hay que poner y cuales no (si la haces con XCOPY,
vaya):
- /M copia solo los archivos con el atributo de "modificado" (A), asi
por ejemplo, si simplemente se copia una carpeta sobre otra para hacer
la copia de seguridad, esto solo copiaria los archivos modificados,
ahorrando tiempo. Es "opcional", digamos, y segun como hagas la copias
deberias o no utilizarlo (si por ejemplo borras la copia anterior antes
de empezar la nueva copia, no deberias utilizarlo, o si no haces la
copia siempre en el mismo sitio).
- /S /E copia todos los subdirectorios incluidos los vacios. Para
hacer una copia de archivos incluyendo las subcarpetas.
- /V verifica que los archivos se escriben correctamente en la
carpeta o unidad de destino.
- /F muestra todos los nombres de los archivos que se copian, para
ver si falta alguno o si se copian todos los que se quiere.
- /H copia tambien archivos ocultos, por si fuera necesario.
- /Y sobreescribe los archivos del destino sin preguntar, por si por
ejemplo se hace siempre la copia sobre el mismo destino.

Me alegro de que sirviera la idea :-)

Saludos. Miguel.


"Francesc" <> escribió en el mensaje
news:ev$
Hola Miguel:

Ya lo he hecho y funciona correctamente.

Por cietto, una curiosidad: ¿Para qué sirven los parámetros "/M /S /E
/V /F /H /Y"

Muchas gracias por tu ayuda.


Francesc
"Miguel Mollejo Sánchez" <> escribió en el mensaje
news:%
Hola...

No se si te sirve la idea, pero ¿Valdría que en vez de que se
ejecute automáticamente un archivo .BAT cuando elijas cerrar Windows
98, tu ejecutaras el archivo .BAT (por ejemplo, poniéndole un acceso
directo en el Escritorio para facilitarlo o algo así...) y que al
terminar lo que tenga que hacer ese archivo BAT, Windows 98 se
cerrara?

Si eso te sirve, bastaría con que la última línea de tu archivo BAT
fuera:
C:\Windows\Rundll32.exe shell32.dll,SHExitWindowsEx 1 para
apagar, o
C:\Windows\Rundll32.exe shell32.dll,SHExitWindowsEx 2 para
reiniciar.
Despues de esa linea, inmediatamente usar EXIT para que se
cierre la ventana de MS-DOS del programa BAT y se pueda cerrar Windows
(si la ventana se queda abierta, no se cerraría Windows, me parece).

Un ejemplo MUY simplificado:
@ECHO OFF
ECHO Copiando el trabajo...
XCOPY C:\MISDOC~1\*.* D:\COPIAS /M /S /E /V /F /H /Y
IF ERRORLEVEL 1 GOTO Fallo
IF ERRORLEVEL 0 GOTO Apagar

: Fallo
ECHO Ha habido algun problema al copiar.
PAUSE
EXIT

: Apagar
ECHO La copia ha terminado bien y apagamos.
C:\Windows\Rundll32.exe shell32.dll,SHExitWindowsEx 1
EXIT


Saludos. Miguel.


"Francesc" <> escribió en el mensaje
news:
Me interesaria saber como se puede ejecutar automaticamente un
fichero
.bat al cerrarse el Windows 98 SE

Ya se que la copia puede realizarse al inicio poniendo la secuencia
en el
autoexec, pero lo que me interesa es hacer la copia del trabajo
realizado
en la jornada.

Gracias de antemano.
Francesc












Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida