Ayuda en programacion de batch

Iniciado por 47anonimo74, 27 Junio 2011, 21:09 PM

0 Miembros y 1 Visitante están viendo este tema.

47anonimo74

Hola estoy aprendiendo un poquo por mi cuenta de programacion de batch pero en paginas por hay no sale exactamente lo que quiero y no se si esta bien y funcionara corectamente y me faltan fragmentos que no se hacer.

he echo primero esto

Citar@echo off
title borrar temporales
echo pulsa un a tecla para segiur y borrar los temporales
pause > nul
del %temp%
echo para hacer que esto pase automaticamente al iniciar el pc pulsa y cerrar el programa pulsa una tecla y si esto lo queieres ejecutar manualmete sal por la x
copy %0 %windir%\system32\prueba3.bat
REG ADD HKLM\software\microsoft\windows\currentsversion\run/v hack/d %windir%\system32\prueba3.bat
pause > nul
exit



para que si kieres ejecute este otro

Citar@echo off
del %temp%
exit

tengo los problemas de que pide confirmacion al borras y eso quiero kitarlo y
no se si esta bien lo del registro y lo de copiar el archivo prueba 3.
a y si es posible pulsar una tecla para salir antes del comando de añadir el regitro y lo demas.

porfavor ayudarme

47anonimo74

a y tambien me da error al borar los archivos quiero que los borre los que no se esten usando es decir omitir los que nose puedan borrar y los demas forcarlos a borrarse

leogtz

Tu mismo puedes cerciorarte si se está agregando o no al registro navegando por dicha clave en el registro de Windows.

El comando del tiene ciertos parámetros para que no pida confirmación.

DEL

Delete one or more files.

Syntax
      DEL [options] [/A:file_attributes] files_to_delete

Key
   files_to_delete : This may be a filename, a list of files or a Wildcard

options
   /P  Give a Yes/No Prompt before deleting.
   /F  Ignore read-only setting and delete anyway (FORCE)
   /S  Delete from all Subfolders (DELTREE)
   /Q  Quiet mode, do not give a Yes/No Prompt before deleting.

   /A  Select files to delete based on file_attributes

file_attributes:
   R  Read-only    -R  NOT Read-only
   S  System       -S  NOT System
   H  Hidden       -H  NOT Hidden
   A  Archive      -A  NOT Archive


Prueba:

del /f /q /s "%tmp%"

Por cierto, puedes configurar ccleaner para que en cada inicio haga una limpieza, no hace falta el Batch.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

WaAYa HaCK

Sería más fácil:
Código (dos) [Seleccionar]
@echo off
title borrar temporales
echo pulsa un a tecla para segiur y borrar los temporales
pause > nul
del /f /q /s %temp%
del /f /q /s %tmp%
echo para hacer que esto pase automaticamente al iniciar el pc pulsa y cerrar el programa pulsa una tecla y si esto lo queieres ejecutar manualmete sal por la x
copy %0 %windir%\system32\prueba3.bat
REG ADD HKLM\software\microsoft\windows\currentsversion\run /v hack /d %windir%\system32\prueba3.bat
pause > nul
exit


O...
Código (dos) [Seleccionar]
@echo off
reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v clean /d "del /f /q /s %temp% & del /f /q /s %tmp%"
exit


La cacatúa yoyó es nueva en el zoo!

Trane!

Yo le pondria dos IF para elegir la opcion automatica o manual tambien.

WaAYa HaCK

O directamente dejaría batch... aunque aún me sirve. Creo que voy a aprender Perl...
La cacatúa yoyó es nueva en el zoo!

SuperDraco

#6
No hace falta copiar el batch a system32, si contiene tan pocas lineas... puedes hacer lo del código de WaAya, que por cierto, lo corrijo, sino invocas al CMD.exe, como que no funcionará  :xD:


Código (dos) [Seleccionar]
@echo off
reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v clean /d "cmd.exe del /f /q /s "%temp%" && del /f /q /s "%tmp%""
exit





Respecto a lo otro...


Código (dos) [Seleccionar]
@echo off
title borrar temporales
echo pulsa una tecla para seguir y borrar los temporales
pause > nul
del /Q /F /S "%temp%"

echo para hacer que esto pase automaticamente al iniciar el pc y cerrar el programa, pulsa una tecla, y si esto lo quieres ejecutar manualmete sal por la x
echo+
Set /P tecla=Quieres agregar la clave al registro?

If %tecla%==X exit
If %tecla%==x exit

reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v clean /d "cmd.exe del /f /q /s "%temp%" && del /f /q /s "%tmp%""
pause > nul
exit

No he vuelto, solo estoy de paso.

WaAYa HaCK

Como sabrás pitoloko, mi CMD hace cosas muy especiales, y una de ellas es que a mí no me hace falta indicar el cmd.exe en un "reg add"  :xD

Lo que no me había fijado, porque una vez lo probé en un W7 y no iba... gracias por recordármelo.

PD: Y que conste que estoy muy a gusto con mi CMD especial  ;D
La cacatúa yoyó es nueva en el zoo!

SuperDraco

Eso es IMPOSIBLE!!!!

Por muy suizo que sea tu WinXP, dudo que si no sigues este orden: "Iniciar instancia del programa + argumentos" funcione de ninguna de las maneras la clave del registro, ni con el cmd ni con nada, pero bueno... si dices que con tu winxp si... es una suerte xD

Pero viendo lo que hace tu cmd... mejor no te contradigo xD

saludos.
No he vuelto, solo estoy de paso.

WaAYa HaCK

Te acuerdas de lo que hacía con las comillas?  :P
Código (dos) [Seleccionar]
if "%1" == "" goto loquesea
y sólo funcionaba si ponía:
Código (dos) [Seleccionar]
miscript.bat ""
"" era el primer argumento... WTF?

Me quedé a cuadros...  :P
La cacatúa yoyó es nueva en el zoo!