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


+  Foro de elhacker.net
|-+  Programaciˇn
| |-+  Scripting
| | |-+  [APORTE] [BATCH] Automatizar apertura de volumen y ba˙l cifrado v2.2
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [APORTE] [BATCH] Automatizar apertura de volumen y ba˙l cifrado v2.2  (Leído 3,356 veces)
cyberalejo17

Desconectado Desconectado

Mensajes: 12



Ver Perfil
[APORTE] [BATCH] Automatizar apertura de volumen y ba˙l cifrado v2.2
« en: 19 Abril 2014, 23:14 pm »

Buenas tardes,

Les quiero compartir un script que desarrollÚ hace poco. Se trata de una peque˝a aplicaciˇn que automatiza la tarea de montar un volumen cifrado de TrueCrypt (permite seleccionar si se desea montar en modo sˇlo lectura o no), y abrir un ba˙l de contrase˝as de KeePass almacenado dentro de ese volumen cifrado.

Modifico el post, para publicar la actualizaciˇn del script. La versiˇn 2.2.


Código
  1. @ECHO OFF
  2. :: Name: Abrir_USB.cmd
  3. :: Author: CyberAlejo17
  4. :: Description: Script para abrir una memoria USB cifrada y un baul de contrasennias.
  5. :: Version: 2.2
  6. :: Tree:
  7. ::     F:\
  8. ::     |   Abrir_USB.cmd
  9. ::     |  
  10. ::     +---PENDRIVE
  11. ::     \---TC
  12. ::         |   CYBERALEJO17-TC.tc
  13. ::         |   truecrypt-x64.sys
  14. ::         |   TrueCrypt.exe
  15. ::         |   truecrypt.sys
  16. ::         |  
  17. ::         \---setup
  18. ::                 TrueCrypt Setup 7.1a.exe
  19. ::     T:\
  20. ::     |  
  21. ::     +---PERSONAL
  22. ::     |   \---Seguridad
  23. ::     |       |   PasswdDatabase.kdbx
  24. ::     |       |  
  25. ::     |       \---Software
  26. ::     |           |   KeePass.chm
  27. ::     |           |   KeePass.config.xml
  28. ::     |           |   KeePass.exe
  29. ::     |           |   KeePass.XmlSerializers.dll
  30. ::     |           |   KeePassLibC32.dll
  31. ::     |           |   KeePassLibC64.dll
  32. ::     |           |   ShInstUtil.exe
  33. ::     |           |  
  34. ::     |           \---XSL
  35. ::     |                   KDBX_DetailsFull.xsl
  36. ::     |                   KDBX_DetailsLite.xsl
  37. ::     |                   KDBX_PasswordsOnly.xsl
  38. ::     |                   KDBX_Styles.css
  39. ::     |                   KDBX_Tabular.xsl
  40. ::     |                   TableHeader.gif
  41. ::     |                  
  42. ::     \---UNIVERSIDAD
  43. ::         \---Cursos 2014-1
  44. ::                 CALIFICACIONES-TC.tc
  45.  
  46.  
  47.  
  48. REM =========
  49. REM VARIABLES
  50. REM =========
  51.  
  52. :: Ruta de la aplicacion TrueCrypt.
  53. set rutaTC=TC\TrueCrypt.exe
  54. if exist "%programfiles%\TrueCrypt\TrueCrypt.exe" set rutaTC=%programfiles%\TrueCrypt\TrueCrypt.exe
  55. :: Letra que va a tomar la unidad Principal.
  56. set letraTC=T
  57. :: Letra que va a tomar la unidad Calificaciones.
  58. set letraCal=U
  59. :: Ruta de la aplicacion KeePass dentro de la unidad Principal.
  60. set rutaKP=PERSONAL\Seguridad\Software\KeePass.exe
  61. :: Ruta del archivo cifrado de la unidad Principal.
  62. set rutaArchivoTC=TC\CYBERALEJO17-TC.tc
  63. :: Ruta del archivo cifrado de la unidad Calificaciones.
  64. set rutaArchivoCal=UNIVERSIDAD\Cursos 2014-1\CALIFICACIONES-TC.tc
  65. :: Ruta del baul de contrasennias.
  66. set rutaArchvoKP=PERSONAL\Seguridad\PasswdDatabase.kdbx
  67.  
  68.  
  69. REM ======
  70. REM INICIO
  71. REM ======
  72.  
  73. :: Nos lleva a la seleccion del menu adecuado.
  74. goto :VERIFICACION
  75.  
  76.  
  77.  
  78.  
  79. REM ==============
  80. REM CODIGO GRAFICO
  81. REM ==============
  82.  
  83.  
  84. REM =====
  85. REM Menus
  86. REM =====
  87.  
  88. :MENU_1:: Menu inicial. Es posible montar las unidades y abrir el baul.
  89. cls
  90. COLOR 07
  91. MODE CON COLS=85 LINES=26
  92. TITLE Abrir USB
  93. echo  ╔════════════════════════════════════════════════════════════════════════════════╗
  94. echo  ║                                   Abrir USB                                    ║
  95. echo  ╠═════════════════════════════╦══════════════════════════════════════════════════╣
  96. echo  ║                             ║                                                  ║
  97. echo  ║ TC Principal                ║                                                  ║
  98. echo  ║  1) Sólo lectura ˙˙˙˙˙˙˙˙˙˙˙║ Monta la unidad principal en modo RO             ║
  99. echo  ║  2) Escritura ˙˙˙˙˙˙˙˙˙˙˙˙˙˙║ Monta la unidad principal en modo RW             ║
  100. echo  ║                             ║                                                  ║
  101. echo  ║ TC Calificaciones           ║                                                  ║
  102. echo  ║  3) Sólo lectura ˙˙˙˙˙˙˙˙˙˙˙║ Monta la unidad principal en modo RW y la unidad ║
  103. echo  ║                             ║   calificaciones el modo RO                      ║
  104. echo  ║  4) Escritura ˙˙˙˙˙˙˙˙˙˙˙˙˙˙║ Monta la unidad principal en modo RW y la unidad ║
  105. echo  ║                             ║   calificaciones el modo RW                      ║
  106. echo  ║                             ║                                                  ║
  107. echo  ║ Baúl                        ║                                                  ║
  108. echo  ║  5) Abrir baúl ˙˙˙˙˙˙˙˙˙˙˙˙˙║ Monta la unidad principal en modo RW e inicia el ║
  109. echo  ║                             ║   baúl de contraseĄas                            ║
  110. echo  ║                             ║                                                  ║
  111. echo  ║ Extras                      ║                                                  ║
  112. echo  ║  6) Mostrar archivos ocultos║ Mostrar las carpetas ocultas en la memoria       ║
  113. echo  ║                             ║                                                  ║
  114. echo  ╚═════════════════════════════╩══════════════════════════════════════════════════╝
  115. goto :EOF
  116.  
  117. :MENU_2:: Ya ha sido montada la unidad Principal. Permite montar la unidad Calificaciones, abrir el baul y desmontar unidades.
  118. cls
  119. COLOR 07
  120. MODE CON COLS=85 LINES=23
  121. TITLE Abrir USB
  122. echo  ╔════════════════════════════════════════════════════════════════════════════════╗
  123. echo  ║                                   Abrir USB                                    ║
  124. echo  ╠═════════════════════════════╦══════════════════════════════════════════════════╣
  125. echo  ║                             ║                                                  ║
  126. echo  ║ TC Calificaciones           ║                                                  ║
  127. echo  ║  1) Sólo lectura ˙˙˙˙˙˙˙˙˙˙˙║ Monta la unidad calificaciones en modo RO        ║
  128. echo  ║  2) Escritura ˙˙˙˙˙˙˙˙˙˙˙˙˙˙║ Monta la unidad calificaciones en modo RW        ║
  129. echo  ║                             ║   (no garantiza RW)                              ║
  130. echo  ║                             ║                                                  ║
  131. echo  ║ Baúl                        ║                                                  ║
  132. echo  ║  3) Abrir baúl ˙˙˙˙˙˙˙˙˙˙˙˙˙║ Inicia el baúl de contraseĄas (no garantiza RW)  ║
  133. echo  ║                             ║                                                  ║
  134. echo  ║ Cierre                      ║                                                  ║
  135. echo  ║  4) Desmontar unidad %letraTC% ˙˙˙˙˙║ Desmonta la unidad Principal                     ║
  136. echo  ║                             ║                                                  ║
  137. echo  ║ Extras                      ║                                                  ║
  138. echo  ║  5) Mostrar archivos ocultos║ Mostrar las carpetas ocultas en la memoria       ║
  139. echo  ║                             ║                                                  ║
  140. echo  ╚═════════════════════════════╩══════════════════════════════════════════════════╝
  141. goto :EOF
  142.  
  143. :MENU_3:: Ya ha sido montada la unidad Principal y abierto el baul. Permite montar la unidad Calificaciones, desmontar unidades y cerrar todo.
  144. cls
  145. COLOR 07
  146. MODE CON COLS=85 LINES=21
  147. TITLE Abrir USB
  148. echo  ╔════════════════════════════════════════════════════════════════════════════════╗
  149. echo  ║                                   Abrir USB                                    ║
  150. echo  ╠═════════════════════════════╦══════════════════════════════════════════════════╣
  151. echo  ║                             ║                                                  ║
  152. echo  ║ TC Calificaciones           ║                                                  ║
  153. echo  ║  1) Sólo lectura ˙˙˙˙˙˙˙˙˙˙˙║ Monta la unidad calificaciones en modo RO        ║
  154. echo  ║  2) Escritura ˙˙˙˙˙˙˙˙˙˙˙˙˙˙║ Monta la unidad calificaciones en modo RW        ║
  155. echo  ║                             ║   (no garantiza RW)                              ║
  156. echo  ║                             ║                                                  ║
  157. echo  ║ Cierre                      ║                                                  ║
  158. echo  ║  3) Cerrar baúl ˙˙˙˙˙˙˙˙˙˙˙˙║ Cierra todos los baúles                          ║
  159. echo  ║  4) Cerrar y desmontar todo ║ Cierra los baúles y desmonta todas las unidades  ║
  160. echo  ║                             ║                                                  ║
  161. echo  ║ Extras                      ║                                                  ║
  162. echo  ║  5) Mostrar archivos ocultos║ Mostrar las carpetas ocultas en la memoria       ║
  163. echo  ║                             ║                                                  ║
  164. echo  ╚═════════════════════════════╩══════════════════════════════════════════════════╝
  165. goto :EOF
  166.  
  167. :MENU_4:: Ya ha sido montada la unidad Principal y Calificaciones. Permite abrir el baul y desmontar unidades.
  168. cls
  169. COLOR 07
  170. MODE CON COLS=85 LINES=19
  171. TITLE Abrir USB
  172. echo  ╔════════════════════════════════════════════════════════════════════════════════╗
  173. echo  ║                                   Abrir USB                                    ║
  174. echo  ╠═════════════════════════════╦══════════════════════════════════════════════════╣
  175. echo  ║                             ║                                                  ║
  176. echo  ║ Baúl                        ║                                                  ║
  177. echo  ║  1) Abrir baúl ˙˙˙˙˙˙˙˙˙˙˙˙˙║ Inicia el baúl de contraseĄas (no garantiza RW)  ║
  178. echo  ║                             ║                                                  ║
  179. echo  ║ Cierre                      ║                                                  ║
  180. echo  ║  2) Desmontar unidad %letraCal% ˙˙˙˙˙║ Desmonta la unidad Calificaciones                ║
  181. echo  ║  3) Desmontar unidades ˙˙˙˙˙║ Desmonta todas las unidades montadas previamente ║
  182. echo  ║                             ║                                                  ║
  183. echo  ║ Extras                      ║                                                  ║
  184. echo  ║  4) Mostrar archivos ocultos║ Mostrar las carpetas ocultas en la memoria       ║
  185. echo  ║                             ║                                                  ║
  186. echo  ╚═════════════════════════════╩══════════════════════════════════════════════════╝
  187. goto :EOF
  188.  
  189. :MENU_5:: Se ha montado la unidad Principal, Calificaciones y abierto el baul. Menu con las opciones para cerrar baul y desmontar unidades.
  190. cls
  191. COLOR 07
  192. MODE CON COLS=85 LINES=18
  193. TITLE Abrir USB
  194. echo  ╔════════════════════════════════════════════════════════════════════════════════╗
  195. echo  ║                                   Abrir USB                                    ║
  196. echo  ╠═════════════════════════════╦══════════════════════════════════════════════════╣
  197. echo  ║                             ║                                                  ║
  198. echo  ║ Cierre                      ║                                                  ║
  199. echo  ║  1) Cerrar baúl ˙˙˙˙˙˙˙˙˙˙˙˙║ Cierra todos los baúles                          ║
  200. echo  ║  2) Cerrar y desmontar %letraCal%    ║ Cierra el baúl y desmonta la unidad              ║
  201. echo  ║                             ║   Calificaciones                                 ║
  202. echo  ║  3) Cerrar y desmontar todo ║ Cierra los baúles y desmonta todas las unidades  ║
  203. echo  ║                             ║                                                  ║
  204. echo  ║ Extras                      ║                                                  ║
  205. echo  ║  4) Mostrar archivos ocultos║ Mostrar las carpetas ocultas en la memoria       ║
  206. echo  ║                             ║                                                  ║
  207. echo  ╚═════════════════════════════╩══════════════════════════════════════════════════╝
  208. goto :EOF
  209.  
  210. :MENU_6:: Advierte del preligro de la ejecucion de attrib.
  211. cls
  212. COLOR 4E
  213. MODE CON COLS=85 LINES=25
  214. TITLE=Mostrar archivos y carpetas ocultas
  215. echo  ╔════════════════════════════════════════════════════════════════════════════════╗
  216. echo  ║                            Mostrar archivos ocultos                            ║
  217. echo  ╠═════════════════════════════╦══════════════════════════════════════════════════╣
  218. echo  ║                             ║                                                  ║
  219. echo  ║             +*+             ║                                                  ║
  220. echo  ║            +* *+            ║                                                  ║
  221. echo  ║           +*   *+           ║                                                  ║
  222. echo  ║          +* **  *+          ║         ĘDesea proceder con la operación?        ║
  223. echo  ║         +*  **   *+         ║                                                  ║
  224. echo  ║        +*   **    *+        ║                                                  ║
  225. echo  ║       +*     *     *+       ║                                                  ║
  226. echo  ║      +*             *+      ║                     Escriba:                     ║
  227. echo  ║     +*       **      *+     ║                                                  ║
  228. echo  ║    +*        **       *+    ║                                                  ║
  229. echo  ║   +*                   *+   ║                                                  ║
  230. echo  ║   ***********************   ║                                                  ║
  231. echo  ║    + + + + + + + + + + +    ║                        OK                        ║
  232. echo  ║                             ║                                                  ║
  233. echo  ║    A D V E R T E N C I A    ║                                                  ║
  234. echo  ║                             ║                                                  ║
  235. echo  ╚═════════════════════════════╩══════════════════════════════════════════════════╝
  236. goto :EOF
  237.  
  238.  
  239. REM ========
  240. REM Mensajes
  241. REM ========
  242.  
  243. :MENSAJE_1:: Mensaje de espera a que se termine de montar el contenedor.
  244. cls
  245. COLOR 07
  246. MODE CON COLS=40 LINES=5
  247. TITLE Espere...
  248. echo  ╔════════════════════════════════════╗
  249. echo  ║     Esperando al contenedor...     ║
  250. echo  ╚════════════════════════════════════╝
  251. goto :EOF
  252.  
  253. :MENSAJE_2:: Mensaje indicando el proceso de cierre del baul de contrasennias.
  254. cls
  255. COLOR 07
  256. MODE CON COLS=40 LINES=5
  257. TITLE Cerrando...
  258. echo  ╔════════════════════════════════════╗
  259. echo  ║          Cerrando baúl...          ║
  260. echo  ╚════════════════════════════════════╝
  261. goto :EOF
  262.  
  263. :MENSAJE_3:: Mensaje indicando el proceso de desmonte de la unidad Calificaciones.
  264. cls
  265. COLOR 07
  266. MODE CON COLS=40 LINES=5
  267. TITLE Desmontando...
  268. echo  ╔════════════════════════════════════╗
  269. echo  ║      Desmontando unidad %letraCal%...       ║
  270. echo  ╚════════════════════════════════════╝
  271. goto :EOF
  272.  
  273. :MENSAJE_4:: Mensaje indicando el proceso de desmonte de la unidad Principal.
  274. cls
  275. COLOR 07
  276. MODE CON COLS=40 LINES=5
  277. TITLE Desmontando...
  278. echo  ╔════════════════════════════════════╗
  279. echo  ║      Desmontando unidad %letraTC%...       ║
  280. echo  ╚════════════════════════════════════╝
  281. goto :EOF
  282.  
  283. :MENSAJE_5:: Mensaje de error
  284. cls
  285. COLOR 4E
  286. MODE CON COLS=40 LINES=5
  287. TITLE Error
  288. echo  ╔════════════════════════════════════╗
  289. echo  ║               ERROR                ║
  290. echo  ╚════════════════════════════════════╝
  291. goto :EOF
  292.  
  293. :MENSAJE_6:: Mensaje indicando que no ha acabado el proceso de mostrar archivos ocultos.
  294. cls
  295. COLOR 07
  296. MODE CON COLS=40 LINES=5
  297. TITLE Espere...
  298. echo  ╔════════════════════════════════════╗
  299. echo  ║        Espere por favor...         ║
  300. echo  ╚════════════════════════════════════╝
  301. goto :EOF
  302.  
  303. :MENSAJE_7:: Mensaje indicando que ha introducido una opciˇn invalida.
  304. cls
  305. COLOR 07
  306. MODE CON COLS=40 LINES=5
  307. TITLE Error
  308. echo  ╔════════════════════════════════════╗
  309. echo  ║          Opción inv lida           ║
  310. echo  ╚════════════════════════════════════╝
  311. goto :EOF
  312.  
  313.  
  314.  
  315. REM ================
  316. REM CODIGO PRINCIPAL
  317. REM ================
  318.  
  319.  
  320. REM ========
  321. REM Opciones
  322. REM ========
  323.  
  324. :VERIFICACION:: Verifica si ya se monto la unidad, mostrando el menu correspondiente.
  325. if exist "%letraTC%:/" (
  326. if exist "%letraCal%:/" (
  327. TASKLIST | FIND /I "KeePass.exe">nul && goto :OPCIONES_5 || goto :OPCIONES_4)
  328. TASKLIST | FIND /I "KeePass.exe">nul && goto :OPCIONES_3 || goto :OPCIONES_2) else (goto :OPCIONES_1)
  329.  
  330. :OPCIONES_1
  331. call :MENU_1
  332. set var=1
  333. set /p var= Seleccione una opción (1-6) [1]:
  334. if %var%==1 (goto :MONTAR_RO)
  335. if %var%==2 (goto :MONTAR_RW)
  336. if %var%==3 (call :MONTAR_RW && goto :MONTAR_CAL_RO)
  337. if %var%==4 (call :MONTAR_RW && goto :MONTAR_CAL_RW)
  338. if %var%==5 (call :MONTAR_RW && goto :ABRIR_BAUL)
  339. if %var%==6 (goto :OPCIONES_6)
  340. call :MENSAJE_7
  341. timeout 1 >nul
  342. goto :OPCIONES_1
  343.  
  344. :OPCIONES_2
  345. call :MENU_2
  346. set var=4
  347. set /p var= Seleccione una opción (1-5) [4]:
  348. if %var%==1 (goto :MONTAR_CAL_RO)
  349. if %var%==2 (goto :MONTAR_CAL_RW)
  350. if %var%==3 (goto :ABRIR_BAUL)
  351. if %var%==4 (goto :DESMONTAR_UNIDAD_PPL)
  352. if %var%==5 (goto :OPCIONES_6)
  353. call :MENSAJE_7
  354. timeout 1 >nul
  355. goto :OPCIONES_2
  356.  
  357. :OPCIONES_3
  358. call :MENU_3
  359. set var=4
  360. set /p var= Seleccione una opción (1-5) [4]:
  361. if %var%==1 (goto :MONTAR_CAL_RO)
  362. if %var%==2 (goto :MONTAR_CAL_RW)
  363. if %var%==3 (goto :CERRAR_BAUL)
  364. if %var%==4 (call :CERRAR_BAUL && goto :DESMONTAR_UNIDAD_PPL)
  365. if %var%==5 (goto :OPCIONES_6)
  366. call :MENSAJE_7
  367. timeout 1 >nul
  368. goto :OPCIONES_3
  369.  
  370. :OPCIONES_4
  371. call :MENU_4
  372. set var=3
  373. set /p var= Seleccione una opción (1-4) [3]:
  374. if %var%==1 (goto :ABRIR_BAUL)
  375. if %var%==2 (goto :DESMONTAR_UNIDAD_CAL)
  376. if %var%==3 (call :DESMONTAR_UNIDAD_CAL && goto :DESMONTAR_UNIDAD_PPL)
  377. if %var%==4 (goto :OPCIONES_6)
  378. call :MENSAJE_7
  379. timeout 1 >nul
  380. goto :OPCIONES_4
  381.  
  382. :OPCIONES_5
  383. call :MENU_5
  384. set var=3
  385. set /p var= Seleccione una opción (1-4) [3]:
  386. if %var%==1 (goto :CERRAR_BAUL)
  387. if %var%==2 (call :CERRAR_BAUL && goto :DESMONTAR_UNIDAD_CAL)
  388. if %var%==3 (call :CERRAR_BAUL && call :DESMONTAR_UNIDAD_CAL && goto :DESMONTAR_UNIDAD_PPL)
  389. if %var%==4 (goto :OPCIONES_6)
  390. call :MENSAJE_7
  391. timeout 1 >nul
  392. goto :OPCIONES_5
  393.  
  394. :OPCIONES_6
  395. call :MENU_6
  396. set proceder=DESISTIR
  397. set /p proceder= Por favor, confirme:
  398. if %proceder%==OK (goto :MOSTRAR_OCULTOS)
  399. goto :VERIFICACION
  400.  
  401.  
  402.  
  403. REM ========
  404. REM Acciones
  405. REM ========
  406.  
  407. :MONTAR_RO:: Montar unidad en solo lectura.
  408. START "Montar unidad RO" "%rutaTC%" /q background /l%letraTC% /e /m ro /m rm /v "%rutaArchivoTC%"
  409. goto :EOF
  410.  
  411. :MONTAR_RW:: Montar unidad en modo escritura.
  412. START "Montar unidad RW" "%rutaTC%" /q background /l%letraTC% /e /m rm /v "%rutaArchivoTC%"
  413. goto :EOF
  414.  
  415. :MONTAR_CAL_RO:: Montar unidad calificaciones en solo lectura.
  416. call :MENSAJE_1
  417. timeout 1 >nul
  418. if not exist "%letraTC%:" (goto :MONTAR_CAL_RO)
  419. START "Montar unidad calificaciones RO" "%rutaTC%" /q background /l%letraCal% /e /m ro /m rm /v "%letraTC%:\%rutaArchivoCal%"
  420. goto :EOF
  421.  
  422. :MONTAR_CAL_RW:: Montar unidad calificaciones en modo escritura.
  423. call :MENSAJE_1
  424. timeout 1 >nul
  425. if not exist "%letraTC%:" (goto :MONTAR_CAL_RW)
  426. START "Montar unidad calificaciones RW" "%rutaTC%" /q background /l%letraCal% /e /m rm /v "%letraTC%:\%rutaArchivoCal%"
  427. goto :EOF
  428.  
  429. :ABRIR_BAUL:: Abrir el baul de contrasennias.
  430. call :MENSAJE_1
  431. timeout 1 >nul
  432. if not exist "%letraTC%:" (goto :ABRIR_BAUL)
  433. START "Cerrar baul" "%letraTC%:\%rutaKP%" --exit-all
  434. START "Abrir baul" "%letraTC%:\%rutaKP%" "%letraTC%:\%rutaArchvoKP%"
  435. goto :EOF
  436.  
  437. :CERRAR_BAUL:: Cierra solo el baul de contrasennias
  438. TASKLIST | FIND /I "KeePass.exe">nul
  439. if %errorlevel%==0 (
  440. call :MENSAJE_2
  441. START "Cerrar baul" "%letraTC%:\%rutaKP%" --exit-all
  442. timeout 2 >nul
  443. )
  444. goto :EOF
  445.  
  446. :DESMONTAR_UNIDAD_CAL:: Desmonta la unidad Calificaciones.
  447. call :MENSAJE_3
  448. if exist "%letraCal%:/" ("%rutaTC%" /d%letraCal% /s /q && timeout 2 >nul)
  449. if exist "%letraCal%:/" (
  450. call :MENSAJE_5
  451. timeout 1 >nul
  452. )
  453. goto :EOF
  454.  
  455. :DESMONTAR_UNIDAD_PPL:: Desmonta la unidad Principal.
  456. call :MENSAJE_4
  457. "%rutaTC%" /d%letraTC% /s /q && timeout 1 >nul
  458. if exist "%letraTC%:/" (
  459. call :MENSAJE_5
  460. timeout 1 >nul
  461. )
  462. goto :EOF
  463.  
  464. :MOSTRAR_OCULTOS:: Muestra los archivos ocultos de la memoria usb.
  465. call :MENSAJE_6
  466. attrib /s /d -r -a -h -s
  467.  


Pueden descargar el script y unos archivos de ejemplo para que vean su funcionamiento en:
https://mega.co.nz/#!I8RU0LwY!3L4aWlIuCZbsMAYM1OsNvXdZmwRZUQfxG_zdypro7Dk
La contrase˝a para el volumen y el ba˙l es: 12345


Algunas imßgenes:








Espero que les pueda resultar ˙til.


PD.

Agradezco a @Elektro por las pruebas y consejos.


« Última modificación: 1 Mayo 2014, 23:46 pm por cyberalejo17 » En línea

cyberalejo17

Desconectado Desconectado

Mensajes: 12



Ver Perfil
Re: [APORTE] [BATCH] Automatizar apertura de volumen y ba˙l cifrado v2.2
« Respuesta #1 en: 1 Mayo 2014, 23:37 pm »

Me gustarÝa que lo probaran y que me dieran sus opiniones al respecto. Por favor.

QuÚ serÝa aconsejable modificar para que quedara mejor (mßs rßpido, mßs fßcil de entender, etc).

En la versiˇn que les compartÝ faltan los comentarios de las opciones del men˙, pero en la versiˇn que tengo en mi memoria usb, ya aparecen.

El archivo CYBERALEJO17-TC.tc que es el contenedor Principal, me ocupa la totalidad menos una giga de mi memoria. Es decir, si es una de 8 GB, ese archivo tendrß un tama˝o de 7 GB. Hago esto para dejar algo de espacio libre para almacenar por fuera de la particiˇn cifrada (carpeta PENDRIVE).

El otro contenedor, donde estßn las calificaciones de los estudiantes, no pesa mas de 2 MB.


« Última modificación: 2 Mayo 2014, 00:01 am por cyberalejo17 » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.708



Ver Perfil
Re: [APORTE] [BATCH] Automatizar apertura de volumen y ba˙l cifrado v2.2
« Respuesta #2 en: 2 Mayo 2014, 08:24 am »

Las modificaciones que hiciste son excelentes, no se puede mejorar mucho mßs.

Pero los menus:
Citar
Código
  1.  
  2. :OPCIONES_1
  3. call :MENU_1
  4. set var=1
  5. set /p var= Seleccione una opción (1-6) [1]:
  6. if %var%==1 (goto :MONTAR_RO)
  7. if %var%==2 (goto :MONTAR_RW)
  8. if %var%==3 (call :MONTAR_RW && goto :MONTAR_CAL_RO)
  9. if %var%==4 (call :MONTAR_RW && goto :MONTAR_CAL_RW)
  10. if %var%==5 (call :MONTAR_RW && goto :ABRIR_BAUL)
  11. if %var%==6 (goto :OPCIONES_6)
  12. call :MENSAJE_7
  13. timeout 1 >nul
  14. goto :OPCIONES_1

PodrÝas hacerlos dinßmicos:
(cˇdigo corregido)
Código:
:OPCIONES_1
Call :MENU_1
Set "Options={Goto :MONTAR_RO}; {Goto :MONTAR_RW}; {Call :MONTAR_RW,Goto :MONTAR_CAL_RO}; {Call :MONTAR_RW,Goto :MONTAR_CAL_RW}; {Call :MONTAR_RW,Goto :ABRIR_BAUL}; {Goto :OPCIONES_6}"
Choice.exe /C "123456" /M "Seleccione una opción (1-6) [1]"
For /F "Tokens=%ErrorLevel%,* Delims=;" %%# In ('Echo "%Options%"') Do (
For /F "Tokens=2-3 Delims={,}" %%X In ('Echo "%%~#"') Do ((%%~X) && (%%~Y))
)
Call :MENSAJE_7
Timeout.exe 1 1>Nul
Goto :OPCIONES_1

REM Esto lo puse solo para testear la llamada a las etiquetas...
:MONTAR_RO
Echo MONTAR_RO
Pause&Exit

:MONTAR_RW
Echo MONTAR_RW
Exit /B 0 & REM AquÝ usas un Call para llamar a este bloque, asÝ que debes indicar un cˇdigo de salida (0|1).

:MONTAR_CAL_RO
Echo MONTAR_CAL_RO
Pause&Exit
( Un pobre intento de simular un Array seteando una cadena delimitada, y poder simular tambiÚn un Ýndice de elementos del Array para poder acceder a un elemento indicando el Ýndice con lo ˙nico que nos proporciona Batch para hacer algo semejante ...un For. )

EDITO: A˝ado otra soluciˇn alternativa, mßs simple:

Código:
SetLocal EnableDelayedExpansion & REM Necesario para expandir la(s) variable(s).

:OPCIONES_1
Call :MENU_1

Set "Choice1=Goto :MONTAR_RO"
Set "Choice2=Goto :MONTAR_RW"
Set "Choice3=Call :MONTAR_RW;Goto :MONTAR_CAL_RO"
Set "Choice4=Call :MONTAR_RW;Goto :MONTAR_CAL_RW"
Set "Choice5=Call :MONTAR_RW;Goto :ABRIR_BAUL"
Set "Choice6=Goto :OPCIONES_6"

Choice.exe /C "123456" /M "Seleccione una opción (1-6) [1]"
Set /A "ChoiceIndex=%ErrorLevel%"
For /F "Tokens=1-2 Delims=;" %%X In ('Echo !Choice%ChoiceIndex%!') Do ((%%~X) && (%%~Y))

SetLocal DisableDelayedExpansion
Call :MENSAJE_7
Timeout.exe 1 1>Nul
Goto :OPCIONES_1





Citar
QuÚ serÝa aconsejable modificar para que quedara mejor (mßs rßpido).
Para que sea mßs rßpido debes utilizar otro lenguaje distinto, si en algo destaca Batch es por su incompetencia y lentitud.

Por ejemplo, en Batch debes usar una aplicaciˇn externa (Find.exe|Findstr.exe) para buscar patrones de cadenas en otra cadena (la salida de un comando), depender de la ejecucion y del tiempo de ejecuciˇn de otro exe y del cˇdigo de salida que este mande para determinar que se encontrˇ una cadena y/o una expresion regular ...eso ya de por si es una mier-da y es muy lento en comparaciˇn con cualquier otro lenguaje.

Ademßs, tambiÚn dependes de otras aplicaciones como 'TaskList.exe', el cual no muestra una lista de procesos en Tiempo Real, por propia experiencia te puedo decir que a veces el comando tiene una demora de 10-15 segundos en actualizar la lista de procesos para mostrar el proceso que andas buscando, asÝ que para obtener mayor eficacia en Batch podrÝas hacer una Query a las Classes de WMI utilizando (de nuevo) una aplicaciˇn externa, WMIC:

Ej:
Código:
( WMIC.exe Process Where Name='KeyPass.exe' Get /Format:List | Find.exe "=" )1>NUL 2>&1 && (...) || (...)

...en cualquier otro lenguaje no necesitarÝas depender de ning˙n exe para verificar si un proceso estß corriendo, podrÝas usar las Classes de WMI dirÚctamente, lo cual es mßs rßpido sin duda.

Como ya digo, tu Batch-Script no se puede mejorar mucho mßs, asÝ estß perfecto aunque le hagas alguna que otra peque˝a modificaciˇn como las que he comentado.

íSaludos!
« Última modificación: 2 Mayo 2014, 09:22 am por Eleкtro » En línea


cyberalejo17

Desconectado Desconectado

Mensajes: 12



Ver Perfil
Re: [APORTE] [BATCH] Automatizar apertura de volumen y ba˙l cifrado v2.2
« Respuesta #3 en: 2 Mayo 2014, 22:19 pm »

Muchas gracias!

Lo que comentas por el momento es desconocido para mi, asÝ que ya tengo tarea.

De nuevo, gracias.


EDITO:
Una pregunta, cambiando los men˙s por choise, todavÝa conservo la particularidad de la opciˇn por defecto? que es lo que estß como [1] en las opciones. Es decir, que no necesito escribir una opciˇn (1-6), sino con sˇlo dar enter, sin haber introducido un n˙mero, se va a esa opciˇn.

Se me ocurriˇ una nueva modificaciˇn, a˝adir la opciˇn de extraer de forma automßtica la memoria USB cuando termine de desmontar y cerrar todas las unidades cifradas.
Por ahora sˇlo he encontrado que puedo hacerlo con aplicaciones externas.
http://quickandeasysoftware.net/software/usb-disk-ejector
Utilizando el parßmetro /REMOVETHIS
« Última modificación: 2 Mayo 2014, 22:24 pm por cyberalejo17 » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.708



Ver Perfil
Re: [APORTE] [BATCH] Automatizar apertura de volumen y ba˙l cifrado v2.2
« Respuesta #4 en: 3 Mayo 2014, 00:30 am »

cambiando los men˙s por choise, todavÝa conservo la particularidad de la opciˇn por defecto? que es lo que estß como [1] en las opciones. Es decir, que no necesito escribir una opciˇn (1-6), sino con sˇlo dar enter, sin haber introducido un n˙mero, se va a esa opciˇn.

El comando Choice espera un UserInput (la interacciˇn por parte del usuario) para seleccionar una opciˇn entre las opciones que especificaste,
por lo tanto no hay lugar para predefinir una opciˇn porque el comando obliga a que una de las opciones se deba elegir...
...a menos que especifiques un tiempo de espera mßximo y entonces si que puedes especificar tambiÚn la opciˇn por defecto al terminar el tiempo de espera.

Lee la ayuda del comando.

Cita de: Choice.exe /?
  /T   tiempo de espera  N˙mero de segundos de pausa antes de que se elija
                       una opciˇn predeterminada. Los valores permitidos
                       estßn comprendidos entre 0 y 9999. Si se especifica
                       0, no habrß pausa y se seleccionarß la opciˇn
                       predeterminada.

   /D   opciˇn            Especifica la opciˇn predeterminada despuÚs de nnnn
                       segundos. Carßcter debe estar en el conjunto
                       especificado de opciones por la opciˇn /C y tambiÚn
                       debe especificarse nnnn con /T.

Ejemplo:
Código
  1. Choice.exe /C "123" /M "Elige" /T 10 /D "3"
  2. (Echo %ErrorLevel%) & REM Resultado: '3'



Citar
a˝adir la opciˇn de extraer de forma automßtica la memoria USB cuando termine de desmontar y cerrar todas las unidades cifradas.
Por ahora sˇlo he encontrado que puedo hacerlo con aplicaciones externas.

Nunca me he interesado por saber como "extraer" un dispositivo extraible de forma automatizada, pero si has encontrado un programa de terceros capaz de hacerlo eso significa que la API de Windows asÝ se lo permite, asÝ que debe haber alguna funciˇn en la WinAPI para hacerlo, desconozco cual ...pero la WinAPI olvÝdate de poder tocarla en Batch.

EDITO: Lo encontrÚ: CM_Request_Device_Eject function + Info, de hecho seg˙n he leido en este source esa es la funciˇn que utiliza la aplicaciˇn 'USBEject' que mencionaste.
Es muchÝsimo mßs dificil de lo que parece en un principio, hay que usar drivers, si esta fuera la ˙nica soluciˇn entonces preferirÝa depender de ese tal "USBEject".

TambiÚn se me ocurre que quizßs en alguna Class (referente a los dispositivos extraibles y/o vol˙menes) de WMI puedas invocar el comando (el cual desconozco el nombre, pero deberÝa ser algo como "Eject/Extract") de ejecuciˇn del dispositivo (InvokeVerb("Eject")), eso serÝa mßs viable porque si encuentras informaciˇn al respecto entonces puedes reproducirlo en Batch usando el comando WMIC.

EDITO: EncontrÚ algo parecido, escrito en PowerShell:
Citar
Código:
$driveEject = New-Object -comObject Shell.Application
$driveEject.Namespace(17).ParseName("E:").InvokeVerb("Eject")
Fuente: http://sushihangover.blogspot.nl/2012/02/powershell-eject-local-or-remote.html

Y lo mismo para VBS:
Citar
Código
  1. For Each d in CreateObject("Scripting.FileSystemObject").Drives
  2. CreateObject("Shell.Application").Namespace(17).ParseName("E:\").InvokeVerb("Eject")
  3. Next
Fuente: http://forums.mydigitallife.info/threads/29412-VBScript-Fast-eject-disk-on-drives

...Se supone que el comando "Eject" sirve tanto para ejecutar CD-Roms como para extraer unidades extraibles, se supone.

Y como ˙ltima alternativa, con este comando puedes mostrar la ventana de extracciˇn de dispositivos extraibles:
Código
  1. rundll32.exe shell32.dll,Control_RunDLL hotplug.dll, @SystemDir

Saludos.
« Última modificación: 3 Mayo 2014, 00:44 am por Eleкtro » En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[ayuda] automatizar tareas (BATCH) « 1 2 3 »
Scripting
guidosl 25 11,706 Último mensaje 20 Agosto 2009, 14:33 pm
por alwaysrockero
Problema con apertura en batch
Scripting
xpaRtanus 2 2,317 Último mensaje 11 Abril 2013, 17:05 pm
por xpaRtanus
[APORTE] [BATCH] Acentos en los programas Batch - La mejor soluciˇn
Scripting
PrÝncipe_Azul 5 6,152 Último mensaje 2 Mayo 2014, 00:09 am
por cyberalejo17
[URGE] Desapariciˇn de un volumen cifrado
Windows
descargar2 1 1,349 Último mensaje 11 Junio 2018, 22:48 pm
por Machacador
[Aporte] Funciones para Cifrado Vernan. Cifrado SimÚtrico(con clave).
PHP
@XSStringManolo 1 351 Último mensaje 5 Octubre 2019, 20:37 pm
por e
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines