Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: awell184 en 1 Agosto 2012, 13:51 PM

Título: [BATCH] SOY NUEVO Y ME GUSTARIA QUE ME AYUDARAN,POR FAVOR
Publicado por: awell184 en 1 Agosto 2012, 13:51 PM
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
Código (dos) [Seleccionar]
@ 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.
Título: Re: SOY NUEVO Y ME GUSTARIA QUE ME AYUDARAN,POR FAVOR
Publicado por: Duning en 1 Agosto 2012, 14:49 PM
Pon el código en code...

y otra cosa, creo que las etiquetas están mal... no creo que puedan tener espacios, prueba así

Código (dos) [Seleccionar]

@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
Título: Re: SOY NUEVO Y ME GUSTARIA QUE ME AYUDARAN,POR FAVOR
Publicado por: awell184 en 2 Agosto 2012, 03:30 AM
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.!!
Título: Re: SOY NUEVO Y ME GUSTARIA QUE ME AYUDARAN,POR FAVOR
Publicado por: Eleкtro en 3 Agosto 2012, 03:06 AM
Esto debería arreglar el problema de la eliminación de los archivos:
Código (dos) [Seleccionar]
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" ...

Código (dos) [Seleccionar]
COPY "c:\MCHYW\Lekarstvo\hywc.dat" "c:\HYW_Data\"
COPY "c:\MCHYW\Lekarstvo\mg16.dll" "c:\MCHYW\Lekarstvo\"


Saludos
Título: Re: [BATCH] SOY NUEVO Y ME GUSTARIA QUE ME AYUDARAN,POR FAVOR
Publicado por: awell184 en 3 Agosto 2012, 12:33 PM
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.
Título: Re: [BATCH] SOY NUEVO Y ME GUSTARIA QUE ME AYUDARAN,POR FAVOR
Publicado por: awell184 en 5 Agosto 2012, 20:56 PM
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
Título: Re: [BATCH] SOY NUEVO Y ME GUSTARIA QUE ME AYUDARAN,POR FAVOR
Publicado por: awell184 en 26 Septiembre 2012, 05:52 AM
ahora se podrá hacer y ejecutar esta rutina en windows 7 64 bit
tengo problema con los archivos ejecutable .exe y mg16.dll
Título: Re: [BATCH] SOY NUEVO Y ME GUSTARIA QUE ME AYUDARAN,POR FAVOR
Publicado por: Eleкtro en 26 Septiembre 2012, 10:10 AM
busca la dll en la carpeta Syswow64

Código (dos) [Seleccionar]
Takeown /F "%WINDIR%\Syswow64\mg16.dll"
etc...
Título: Re: [BATCH] SOY NUEVO Y ME GUSTARIA QUE ME AYUDARAN,POR FAVOR
Publicado por: 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
Título: Re: [BATCH] SOY NUEVO Y ME GUSTARIA QUE ME AYUDARAN,POR FAVOR
Publicado por: Eleкtro en 26 Septiembre 2012, 12:25 PM
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.
Título: Re: [BATCH] SOY NUEVO Y ME GUSTARIA QUE ME AYUDARAN,POR FAVOR
Publicado por: awell184 en 27 Septiembre 2012, 02:45 AM
gracias por tu respuesta,saludos..!!
Título: Re: [BATCH] SOY NUEVO Y ME GUSTARIA QUE ME AYUDARAN,POR FAVOR
Publicado por: Puroguramu en 2 Octubre 2012, 17:09 PM
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)
Código (bash) [Seleccionar]



Si se supone que hay cuatro opciones (1,2,3,4) ¿que pinta un nueve aquí?
if %ver%==9 (goto :salir)
Código (bash) [Seleccionar]


¿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.  :-[

Título: Re: [BATCH] SOY NUEVO Y ME GUSTARIA QUE ME AYUDARAN,POR FAVOR
Publicado por: awell184 en 15 Agosto 2013, 02:11 AM
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..

Título: Re: [BATCH] SOY NUEVO Y ME GUSTARIA QUE ME AYUDARAN,POR FAVOR
Publicado por: Eleкtro en 15 Agosto 2013, 14:16 PM
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
Título: Re: [BATCH] SOY NUEVO Y ME GUSTARIA QUE ME AYUDARAN,POR FAVOR
Publicado por: awell184 en 12 Junio 2016, 18:18 PM
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