Estimados amigos necesito hacer una rutina .bat para borrar y copiar unos archivos que tengo en c:,por favor seria de mucha ayuda.
Para un trabajo, la verdad es que lo he tratado de hacer varias veces y no me sale.
Se trata de borrar 2 archivos que estas en un sistema operativo Windows seven de 32 bit en el disco C.
Uno esta ubicado en C: en carpetas HYW_Data se llama el archivo HYWc.dat que tengo que borrar
La otra carpeta esta ubicada también en C: en el directorio WINDOWS dentro de otra carpeta llamada SYSTEM32 el archivo a borrar es mg16.dll
La otra rutina que necesito es Copiar y colocar algún atributo solo lectura
Los nuevos archivos que están en c: en una carpeta llamada Lekarstvo
Dentro de esta carpeta están los archivos HYWc.dat y mg16.dll
Copiar archivo HYWC,data lo quiero dejar en la carpeta HYW_Data que esta en C:
Copiar el archivo mg16.dll y lo quiero dejar en la carpeta MCHYW que esta en C:
seria de mucha ayuda.
y gracias por su tiempo.
esto es lo que tengo:
E
@ echo off
:menu
cls
color A
echo **********************************************************
echo ****** PROGRAMA DE INSTALACION ********
echo 1.- BORRAR ARCHIVOS
echo 2.- AGREGAR ARCHIVOS con atributos
echo 3.- REINICIAR EQUIPO
echo 4.- salir del menu
echo
echo ************** ****************** ********************
echo.
echo.
set /p ver=que desea hacer..?
if %ver%==1 goto BORRAR ARCHIVOS
if %ver%==2 goto AGREGAR ARCHIVOS
if %ver%==3 goto REINICIAR EQUIPO
if %ver%==9 goto salir
cd..
cd..
cls
:borrar
color A
echo precione enter para continuar
pause >nul
cd..
cd..
title borrar archivos
color A
:borrar archivos
color A
del c:\windows\System32\"mg16.dll" /f /q
del c:\HYW_Data\"hywc.dat" /f /q
echo.
echo precione enter para regresar al menu
pause >nul
goto menu
:agregar archivos
color A
COPY "c:\MCHYW\Lekarstvo hywc.dat" "c:\HYW_Data Hywc.dat"
COPY "c:\MCHYW\Lekarstvo mg16.dll" "c:\MCHYW\Lekarstvo"
echo.
echo.
echo precione enter para regresar al menu
pause >nul
goto menu
:salir
exit.
MOD: Los códigos deben ir con etiquetas.
Pon el código en code...
y otra cosa, creo que las etiquetas están mal... no creo que puedan tener espacios, prueba así
@echo off
:menu
cls
color A
echo **********************************************************
echo ****** PROGRAMA DE INSTALACION ********
echo 1.- BORRAR ARCHIVOS
echo 2.- AGREGAR ARCHIVOS con atributos
echo 3.- REINICIAR EQUIPO
echo 4.- salir del menu
echo
echo ************** ****************** ********************
echo.
echo.
set /p ver=que desea hacer..?
if %ver%==1 (goto :BORRAR_ARCHIVOS)
if %ver%==2 (goto :AGREGAR_ARCHIVOS)
if %ver%==3 (goto :REINICIAR EQUIPO)
if %ver%==9 (goto :salir)
cd..
cd..
cls
:borrar
color A
echo precione enter para continuar
pause >nul
cd..
cd..
title borrar archivos
color A
:BORRAR_ARCHIVOS
color A
del c:\windows\System32\"mg16.dll" /f /q
del c:\HYW_Data\"hywc.dat" /f /q
echo.
echo precione enter para regresar al menu
pause >nul
goto menu
:AGREGAR_ARCHIVOS
color A
COPY "c:\MCHYW\Lekarstvo hywc.dat" "c:\HYW_Data Hywc.dat"
COPY "c:\MCHYW\Lekarstvo mg16.dll" "c:\MCHYW\Lekarstvo"
echo.
echo.
echo precione enter para regresar al menu
pause >nul
goto menu
:salir
exit.
Falta:
:REINICIAR EQUIPO
No se donde lo querrás poner, pero te digo que no soy ningun experto en batch, porbablemente tenga fallos y tal e.e
Lo unico que cambie fueron las etiquetas y el IF
mi amigo, gracias pero una de ella no se ejecuta los cambios dice al borrar ACCESO DENEGADO en la rutina del c:\windows\System32\"mg16.dll" /f /q tendre que tener un permiso como administrador por que el archivo que necesito borrar esta en la carpeta del sistema operativo...?
y al agregar los 2 archivos EL SISTEMA NO PUEDE ENCONTRAR EL ARCH.ESPECIFICADO
hay algun comando para reiniciar el equipo, ademas no tengo idea .. en esto.!!
Esto debería arreglar el problema de la eliminación de los archivos:
Takeown /F "%WINDIR%\System32\mg16.dll"
Icacls "%WINDIR%\System32\mg16.dll" /Grant "%USERNAME%":(F)
del /f /q "%WINDIR%\System32\mg16.dll"
del /f /q "%HOMEDRIVE%\HYW_Data\hywc.dat"
Y sobre el problema del copiado, El error es porque las rutas no existen, Escríbelas bien.
Fíjate, Le quitaste el slash que he resaltado en verde:
Copy "c:\MCHYW\Lekarstvo\hywc.dat" ...
Copy "c:\MCHYW\Lekarstvo\mg16.dll" ...
COPY "c:\MCHYW\Lekarstvo\hywc.dat" "c:\HYW_Data\"
COPY "c:\MCHYW\Lekarstvo\mg16.dll" "c:\MCHYW\Lekarstvo\"
Saludos
dice error el uruario que a iniciado secion altulmente
no tiene privilegio de propiedad del archivo
Takeown /F "%WINDIR%\System32\mg16.dll"
Icacls "%WINDIR%\System32\mg16.dll" /Grant "%USERNAME%":(F)
del /f /q "%WINDIR%\System32\mg16.dll"
del /f /q "%HOMEDRIVE%\HYW_Data\hywc.dat"
de todas maneras gracias por tu tiempo , amigo
MOD: Es el segundo aviso, los códigos van en sus respectivas etiquetas.
GRACIA MUCHAS GRACIAS...!!
Logre hacer esta rutina..
saludos a todos ahora seré uno mas en este foro..
me encanta la vida y esta r en este for.. saludos y buena suerte en la vida,buenas vibras.. para todos..!!
>:D >:D >:D >:D >:D >:D
ahora se podrá hacer y ejecutar esta rutina en windows 7 64 bit
tengo problema con los archivos ejecutable .exe y mg16.dll
busca la dll en la carpeta Syswow64
Takeown /F "%WINDIR%\Syswow64\mg16.dll"
etc...
ademas tengo que ejecutar un archivo llamado MCHYW.exe pero me acusa que es de x86 y no se puede ejecutar en win7 de 64 bit q esta c en la carpeta Lekarstvo y sub.carpeta MCHYW
Cita de: awell184 en 26 Septiembre 2012, 12:18 PM
ademas tengo que ejecutar un archivo llamado MCHYW.exe pero me acusa que es de x86 y no se puede ejecutar en win7 de 64 bit q esta c en la carpeta Lekarstvo y sub.carpeta MCHYW
No tiene solución, el exe no es compatible con arquitectura de 64 Bit.
saludos.
gracias por tu respuesta,saludos..!!
No soy ningún genio ni nada, pero creo que hay un problema. (Lo mas probable es que me equivoque)
Mirar esto:
echo **********************************************************
echo ****** PROGRAMA DE INSTALACION ********
echo 1.- BORRAR ARCHIVOS
echo 2.- AGREGAR ARCHIVOS con atributos
echo 3.- REINICIAR EQUIPO
echo 4.- salir del menu
echo
echo ************** ****************** ********************
echo.
echo.
set /p ver=que desea hacer..?
if %ver%==1 (goto :BORRAR_ARCHIVOS)
if %ver%==2 (goto :AGREGAR_ARCHIVOS)
if %ver%==3 (goto :REINICIAR EQUIPO)
if %ver%==9 (goto :salir)
Si se supone que hay cuatro opciones (1,2,3,4) ¿que pinta un nueve aquí?
if %ver%==9 (goto :salir)
¿Y no seria mejor poner "choice"?:
echo **********************************************************
echo ****** PROGRAMA DE INSTALACION ********
echo 1.- BORRAR ARCHIVOS
echo 2.- AGREGAR ARCHIVOS con atributos
echo 3.- REINICIAR EQUIPO
echo 4.- salir del menu
echo
echo ************** ****************** ********************
echo.
echo.
choice /C 1234 /M "que desea hacer..?" /N
if %levelerror%==1 goto :BORRAR_ARCHIVOS
if %levelerror%==2 goto :AGREGAR_ARCHIVOS
if %levelerror%==3 goto :REINICIAR EQUIPO
if %levelerror%==4 goto :salir]
PD: Repito. Es MUY probable que me equivoque, así que si pasa no me machaquéis, por favor. :-[
gracias por tu ayuda...
ya logre hacer el mini programa instalador. bat
ahora tengo una pregunta se podrá hacer un bat para cierto archivo.exe
se ejecute 3 meses y no funcione mas.-
mas información:
este archivo se encuentra en C la carpeta se llama MCHYW y el archivo.exe se encuentra dentro de esta carpeta, pero quiero que funciones cierta cantidad de veces aprox,3 meses el archivo de llama MCHYW.exe y después se borre,automáticamente
de ante mano gracias por tu gran ayuda, fue enorme agradecimiento por tu ayuda..
Cita de: awell184 en 15 Agosto 2013, 02:11 AM
ya logre hacer el mini programa instalador. bat
ahora tengo una pregunta se podrá hacer un bat para cierto archivo.exe
se ejecute 3 meses y no funcione mas.-
¿El "cierto archivo.exe" es de tu propiedad?, te comento esto porque entonces debes añadir la protección trial desde el lenguaje donde hayas programado dicha aplicación, no usando Batch.
Lo más conveniente sería que utilizases aplicaciones profesionales tanto para crear un instalador (InstallBuilders) como para añadir protección Trial, ya que estas cosas no se pueden hacer de manera correcta usando algo tán simple como Batch.
...Pero si quieres hacerlo en Batch entonces puedes codear un script que cree una tarea programada que se ejecute dentro de 3 meses y elimine los archivos que quieras, aunque te advierto que el usuario puede descubrir esta tarea en el programador de tareas y desactivarla si así lo desea, no esperes hallar ningún método más efectivo usando Batch.
-> SCHTASKS (http://msdn.microsoft.com/en-us/library/windows/desktop/bb736357%28v=vs.85%29.aspx)
O también puedes añadir una entrada al Registro del usuario actual (HKCU) para ejecutar un script Batch en cada inicio de sesión, que cuente los días.
-> Run and RunOnce Registry Keys (http://msdn.microsoft.com/en-us/library/aa376977%28v=vs.85%29.aspx)
...Si creas la clave con una longitud de nombre mayor a 255 caracteres entonces la clave se volverá invisible en Regedit, pero usando cualquier "taskManager" profesional se pueden ver estas claves invisibles, y eliminarlas si el usuario quiere.
Saludos
hola me serbio mucho esta rutina pero ahora quiero saber porque ahora window al ejecutar este comando no cambia la fecha, no lo reconoce como comando y antes si.
[HKEY_CURRENT_USER\Software\VB and VBA Program Settings\CommInH\UNH]
"TOP"="20-2-2016-0-0-8"
tengo que eliminar un registo y ahora no lo permite antes si.
echo Windows Registry Editor Version 5.00 > mchyw_reset.reg
echo [HKEY_CURRENT_USER\Software\VB and VBA Program Settings\CommInH\UNH] >> mchyw_reset.reg
echo "TOP"=- >> mchyw_reset.reg