elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Temas
Páginas: [1]
1  Programación / Scripting / Script en batch para crear respaldos. en: 21 Diciembre 2016, 21:00 pm
Hola que tal hermanos! buen dia.

Estoy aprendiendo batch y acabo de terminar un script que respalda usuarios de diferente forma, quisiera compartir el script con ustedes, soy principiante espero no haber cometido muchos errores  :rolleyes: :-X, les explico com funciona y les dejo el codigo abajo :P

Funcion: Tiene 2 modos;
             *Normal: Pide la ruta donde se colocara el Respaldo (ejemplo "c:\respaldo",  
                sin comillas xD) Crea respaldo de todos los usuarios que se encuentran en
                windows, las carpetas que respaldason Escritorio, Documentos, Musica,
                 Videos, Imagenes, Outloock, Descargas.
          
            *Personalizado: Se listaran y escogeran los usuarios a respaldar unos por uno,
               despues se pedira la ruta del backup creandose dentro una carpeta con la
               fecha del dia y dentro el respaldo.


Código:


@echo off
setlocal EnableDelayedExpansion

:menu
mode 80,35
cls
color 0E
echo.
echo Respadar Usuarios Windows....
echo                                             ***By:M1s4***
echo 1)Normal
echo 2)Personalizado
echo 3)Instrucciones
echo.
set /p op=Escoge una Opcion(numero):
if "%op%"=="1" (goto Norm)
if "%op%"=="2" (goto Pers)
if "%op%"=="3" (goto Inst)

::Algo salio mal! Escribe el numero de la opcion que quieras
echo. el numero "%op%" no es una opcion correcta e_e
pause
goto menu
exit


:Inst
mode 105,20
cls
color 0E
echo.
echo La Opcion:
echo.
echo        *Normal: Pide la ruta donde se colocara el Respaldo (ejemplo "c:\respaldo", sin comillas xD) Crea respaldo de todos los usuarios que se encuentran en windows
echo                 las carpetas que respaldason Escritorio, Documentos, Musica, Videos, Imagenes, Outloock, Descargas.
echo.
echo        *Personalizado: Se listaran y escogeran los usuarios a respaldar unos por uno, despues se pedira la ruta del backup
echo                       creandose dentro una carpeta con la fecha del dia y dentro el respaldo.
pause
pause>nul
goto menu
exit


:Norm
mode 80,35
cls
color A
echo.
set /p ruta=ruta del respaldo (Ejemplo "E:\respaldo, M: " sin comillas)
set raiz=!ruta!
setx RutaNorm !raiz!
setx CarpF %date:~0,2%-%date:~3,2%-%date:~8,2%
echo la ruta que escribio fue "%raiz%"
mkdir "%raiz%\%CarpF%"
goto CopNorm
exit

:CopNorm
cls
Color A
cd "c:\users"
dir > "c:\%userprofile%\desktop\us3rs.txt"
cd "c:\%userprofile%\desktop"
for /f "tokens=*" %%i in (us3rs.txt) do (
robocopy "c:\users\%%i\desktop" "%RutaNorm%\%%i\desktop"
robocopy "c:\users\%%i\download" "%RutaNorm%\%%i\download"
robocopy "c:\users\%%i\documents" "%RutaNorm%\%%i\documents"
robocopy "c:\users\%%i\images" "%RutaNorm%\%%i\images"
robocopy "c:\users\%%i\music" "%RutaNorm%\%%i\music"
robocopy "c:\users\%%i\videos" "%RutaNorm%\%%i\videos"
robocopy "c:\users\%%i\AppData\Roming\Microsoft\outlook" "%RutaNorm%\%%i\outlook")
echo Se termino de copiar los archivos
start "%RutaNorm%"
pause
goto Fin
exit


:Fin
echo Se termino de copiar los archivos
pause
cls
echo.
echo.
echo.
echo 1)Volver al menu    2)salir
echo.
echo.
set /p opc=Que desea hacer?
if "%opc%"=="1" (goto menu)
if "%opc%"=="2" (goto salir)
::Error de escritura, Por favor escriba de forma correcta el usuario :)
pause
goto Fin
exit

:Pers
cls
echo.
echo.
echo.
echo.
set /p ruta=ruta del respaldo (Ejemplo "E:\respaldo, M: " sin comillas):
set raiz=!ruta!
setx RutaPers !raiz!
echo se guardo la ruta %raiz%
setx CarpF %date:~0,2%-%date:~3,2%-%date:~8,2%
mkdir "%raiz%\%CarpF%"



echo.
pause
cls
echo.
dir "c:\users"
echo.
echo.
set /p nomb=Escriba el usuario que desea respaldar:
setx user !nomb!
echo.
echo.
echo 1)Agregar_otro_usuario  2)Comenzar_a_copiar
set /p opcion=Escoga una opcion(escriba el numero):
if "%opcion%"=="1" (goto CopPers)
if "%opcion%"=="2" (goto SegCop)

::Algo salio mal! Escribe el numero de la opcion que quieras
echo. el numero "%op%" no es una opcion correcta e_e
pause
goto Pers
exit


:CopPers
cls
Color 0E
echo.
dir "c:\users"
echo.
set /p nomb=escribe el usuario:
setx nomb1 !nomb!
set /p op1=Desea agregar otro usuario (S/N)?:
if "%op1%"=="s" (echo !nomb! >> "%userprofile%\desktop\ListUser.txt" && goto CopPers)
if "%op1%"=="n" (setx user2 %nomb%  && goto CopPers2)
::Error de escritura, Por favor escriba de forma correcta el usuario :)
pause
goto CopPers
exit


:CopPers2
cd "c:\%userprofile%\desktop"
for /f "tokens=*" %%i in (ListUser.txt) do (
robocopy "c:\users\%%i\desktop" "%RutaPers%\%%i\desktop"
robocopy "c:\users\%%i\download" "%RutaPers%\%%i\download"
robocopy "c:\users\%%i\documents" "%RutaPers%\%%i\documents"
robocopy "c:\users\%%i\images" "%RutaPers%\%%i\images"
robocopy "c:\users\%%i\music" "%RutaPers%\%%i\music"
robocopy "c:\users\%%i\videos" "%RutaPers%\%%i\videos"
robocopy "c:\users\%%i\AppData\Roming\Microsoft\outlook" "%RutaPers%\%%i\outlook")
echo.
echo.
echo.
echo Se termino de copiar los archivos
start "%RutaPers%"
pause
goto Fin


:salir
msg *Buen dia :)
exit



La educacion se basa en inspirar tu mente no en llenar tu cabeza  ::) :D :laugh:
2  Programación / Scripting / Cuando recorro un txt con un FOR la variable me devuelve el numero y no la palab en: 24 Noviembre 2016, 15:39 pm
 :-(  Que tal buenas tardes, primero gracias por tomarse el tiempo de leer
   :-( Resulta que estoy haciendo un bat donde recorro un .txt que tiene palabras y cuando
quiero poner esa variable "%%a" me pone el numero y no la palabra :/, que creen que pueda ser, les dejo mi codigo espero me puedan ayudar :)  :D :D

 
Código
  1. @echo off
  2.  
  3.  
  4. :inicio
  5. cls
  6. Color A
  7. setx CarpF %date:~0,2%-%date:~3,2%-%date:~8,2%
  8. md "c:\users\%username%\desktop\respaldo\%CarpF%"
  9. pause>nul
  10. goto leer
  11.  
  12. :leer
  13. cls
  14. color A
  15. cd "C:\users"
  16. dir /b > "%userprofile%\desktop\us3rs.txt"
  17. cd "%userprofile%\desktop"
  18. rem Aqui es donde me da el problema, la variable %%a no coge la palabra :c
  19. For /F "tokens=*" %%a in (us3rs.txt) do (
  20. set var1=%%a
  21. set usma % var1 %
  22. echo %usma%
  23. call :copiar )
  24.  
  25. :copiar
  26. robocopy "c:\users\%usma%\desktop\lolescr" "c:\users\%usma%\desktop\respaldo\%usmi%"
  27. robocopy "c:\users\%usma%\download\loldesc" "c:\users\%usma%\desktop\respaldo\%usmi%"
  28. robocopy "c:\users\%usma%\pictures\lolimag" "c:\users\%usma%\desktop\respaldo\%usmi%"
  29. start %userprofile%\desktop\respaldo
  30. msg * Se copiar todos los archivos
  31. exitxº


Mod: Los códigos deben ir en etiquetas GeSHi
3  Programación / Scripting / Como puedo ejecutar mas de un comando dentro de un FOR? en: 18 Noviembre 2016, 18:33 pm
 ::)  Hola gente buenas tardes, estoy empezando a programar en bat y me preguntaba si se puede ejecutar mas de un comando dentro del FOR, por ejemplo tengo este codigo

@echo off

:menu
cls
color A
cd "c:\users"
pause
dir /b >"%temp%\lolillo.txt"
  for /F "tokens=*" %%a in (%temp%\lolillo.txt) do (
     robocopy "c:\users\%%a\Downloads\loldesc"                "%temp%\RespaldoServer\%computername%\%%a\downloads" /Z /S  &&
    robocopy "c:\users\%%a\desktop\lolescr" "%temp%\RespaldoServer\%computername%\%%a\desktop" /Z /S  &&
    robocopy "c:\users\%%a\vivideos" "%temp%\RespaldoServer\%computername%\%%a\videos" /Z /S)         
   
exit

Mi duda es como podria hacer que se copeen las 3 carpetas ya que la concatenacion (segun yo para el AND es &&, o estoy mal desde ahi? :c,

Ojala me haya explicado un poco c:,  Muchas gracias por su tiempo banda :D  :rolleyes:
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines