|
12341
|
Programación / Scripting / Re: Ayuda para "convertir" este VBS a BATCH
|
en: 6 Noviembre 2011, 11:02 am
|
Bueno, espero haberte aclarado algo Muchas gracias por tu respuesta, pero eso ya lo conocía Y si, lo que intento es pasar las propiedades de un archivo (El Bitrate de un archivo de música) a una variable, pero eso no se puede ver con batch a menos que use la api de windows o la de mi ejemplo, en cualquier caso, no se usar ninguna de las dos xD Un saludo
|
|
|
12342
|
Programación / Scripting / Re: Hacer un Batch de control de versión
|
en: 6 Noviembre 2011, 10:49 am
|
No he probado demasiado mi modificación pero creo que no he cometido ningún error, ya nos cuentas Rem EleKtrO H@ckeR Set Ruta1= "Unidad1:\Direct\SubDirect\" Set Ruta2= "Unidad2:\Direct\SubDirect\" Set Item1="Ruta1\ArchExe" Set Item2="Ruta2\ArchExe" Rem Comienzo, pregunta por el 1º :Paso1 Rem Si encontró el 1º, pregunta por el 2º :Paso2 ################################################################################################################################ >nul :Paso3 REM Seteamos la fecha y la hora de creacion del Item 1 e Item 2... For /F "Tokens=1,2,3*" %%a in (' dir /tc/od "ITEM1.EXE" ^| Find "ITEM1.EXE"' ) do ( Set Fecha_de_creacion_Item1= %%a Set Hora_de_creacion_Item1= %%b ) For /F "Tokens=1,2,3*" %%a in (' dir /tc/od "ITEM2.EXE" ^| Find "ITEM2.EXE"' ) do ( Set Fecha_de_creacion_Item2= %%a Set Hora_de_creacion_Item2= %%b ) Rem Compara el 1º con el 2º :Creation Date REM Si la fecha de creacion del item 1 es mayor que el 2... If %Fecha_de_creacion_Item1:~-0,5% GTR %Fecha_de_creacion_Item2:~-0,5% (Goto : Paso4) REM Si la fecha de creacion del item 1 es menor que el 2... If %Fecha_de_creacion_Item1:~-0,5% LSS %Fecha_de_creacion_Item2:~-0,5% (Goto : End) REM Si la fecha de creacion del item 1 es igual que el 2... If %Fecha_de_creacion_Item1:~-0,5% EQU %Fecha_de_creacion_Item2:~-0,5% (Goto : Creation Hour ) echo+ ERROR en la comparacion :Creation Hour REM Si la hora de creacion del item 1 es mayor que el 2... If %Hora_de_creacion_Item1% GTR %Hora_de_creacion_Item2% (Goto : Paso4) REM Si la hora de creacion del item 1 es menor que el 2... If %Hora_de_creacion_Item1% LSS %Hora_de_creacion_Item2% (Goto : End) REM Si la hora de creacion del item 1 es igual que el 2... If %Hora_de_creacion_Item1% EQU %Hora_de_creacion_Item2% (Goto : End) echo+ ERROR en la comparacion ################################################################################################################################ >nul Rem Reemplaza :Paso4 :End "Menu.exe"
|
|
|
12343
|
Programación / Scripting / Re: [Batch][Aporte] Base de datos para clientes.
|
en: 6 Noviembre 2011, 10:03 am
|
no entendi la parte de tu codigo chequear disco duro ?
echo S | chkdsk %homedrive% /F /R /X >nul
supongo que lo que no entendiste es eso al ejecutar el chkdsk en el disco principal, windows pide una confirmación para ejecutarlo en el proximo reinicio (S/N), pues con el echo S | confirmamos S automáticamente. /F es para corregir los sectores dañados /R para algo parecido /X para demontar la unidad y poder analizarla (%homedrive%) (en el proximo reinicio del pc) saludosss
|
|
|
12344
|
Programación / Scripting / Re: [Batch] - (Duda) Asignar varibales (En MS-DOS 6.22)
|
en: 5 Noviembre 2011, 11:29 am
|
Empiezo a pensar que es una pregunta trampa... http://www.computerhope.com/sethlp.htmEn esa página explica la sintaxis de SET version de MSDOS... sencillamente no se puede hacer XDDD En otra página me he repasado todos los comandos que trae el msdos, y no he encontrado ninguno que se asemeje a lo que buscas... Ninguno parece permitir que el usuario interactue con el teclado para definir variables ...ni nada Solo se me ocurre que pruebes estos comandos a ver si sacas algo en clave xD help
Saludos.
|
|
|
12346
|
Programación / Scripting / Re: [Batch][Aporte] Base de datos para clientes.
|
en: 5 Noviembre 2011, 03:51 am
|
Cierto, usas muchas variables y conviene "resetearlas" al volver al :MENU, porque sino aunque dejes vacía alguna de las variables como talla dire y eso, se tomará la variable anterior... espero que se me entienda xD aparte de eso, dejame mejorartelo un poquito lo que pueda PD: Copia este código tal cual, para probarlo, aunque veas caracteres raros al copiar no te preocupes, en la consola salen bien las palabras con los acentos y eso Leo es un crack con el tema de trabajar sobre archivos de texto así que yo esperaría a ver si te da una solución para una mejor busqueda sobre la lista de clientes...
title Base de datos Clientes color fc If not exist " %homedrive%\clientes.txt" (echo. >" %homedrive%\clientes.txt" ) :############################################################ REM En esta parte no he correjido nada importante, solo sintaxis y gramática xD, el "ELSE" del final... REM Reseteando variables... :MENU cls echo 2.- Buscar dentro de la Base de datos echo 3.- Mostrar el contenido de la Base de datos echo 4.- Borrar Base de datos set /p o= Elija una opci¢n: :############################################################ REM Aqui nos aseguramos de que ningún campo queda vacío... :add cls echo Cliente : %name%>>%homedrive%\clientes.txt echo Direcci¢n : %dire%>>%homedrive%\clientes.txt echo N£mero : %n%>>%homedrive%\clientes.txt echo Compras : %c%>>%homedrive%\clientes.txt echo Talla : %t%>>%homedrive%\clientes.txt echo Sexo : %s%>>%homedrive%\clientes.txt echo -------------------------------------------------; >>%homedrive%\clientes.txt echo Generado Correctamente. ) :############################################################ REM no te recomiendo usar setlocal si hay productos o datos que contengan caracteres especiales como "Nike!" ...pues no los vas a encontrar xD REM en el metodo de buscqueda no he podido hacer nada mejor, habria sido fácil usando tail y txtback porque cada cliente esta separado en 7 líneas, pero bueno, no me he kerido comer más el coco :xD :b cls set /p bo=- ¨Que desea buscar dentro de la Base de datos?: find " %bo%" " %homedrive%\clientes.txt" >nul find "%bo%" "%homedrive%\clientes.txt" echo No se ha encontrado ninguna coincidencia, Intentelo de nuevo... ) :############################################################ REM Ahora el código reconoce varias respuestas (si,SI,Si,sI,sí,Sí - No,no,NO,nO) en cambio tu código solo reconocia dos (Aunque no te lo parezca así era). :dl cls echo Se borrar… la base de datos, ¨Est… seguro? Si/No echo Se perder…n todos los datos guardados... :############################################################ REM Mas vale prevenir que curar, Los HDD's a veces se estropean, mejor nos aseguramos de que la lista se borre de verdad xD cls del /q /f " %homedrive%\clientes.txt" >nul 2 >&1 cls echo No se pudo borrar la lista. ) :############################################################ REM Y esta parte me la invento xD :checkeo cls echo ¨Quiere iniciar un escaneo de errorer de su disco duro? Si/No echo Se reiniciar… el Pc... echo %CHECK%| findstr /I " ^S.$" >nul echo S | chkdsk %homedrive% /F /R /X >nul shutdown -r -t 10 ) echo %CHECK%| findstr /I " ^NO$" >nul :############################################################ REM En el antiguo código, Sí la lista es demasiado larga no se mostraría entera... Queda corregido por si acaso. :x cls type "%homedrive%\clientes.txt" | More /E /C
|
|
|
12348
|
Programación / Scripting / [BATCH] Logon Background Changer 0.4 (Click derecho en el menú contextual)
|
en: 4 Noviembre 2011, 21:00 pm
|
NUEVA VERSIÓN, SCRIPT ACTUALIZADO! 21/07/2012v0.4 ----- - Corregido un error al intentar establecer una imagen cuyo nombre de archivo lleva los caracteres de parentesis ( )
- Corregido un fallo en la instalación del script... No me di cuenta, la versión 0.3 no podia funcionar porque puse la ruta mal en el script xD
- Añadida una opción en el bat para instalar el script donde uno quiera
v0.3 ----- - Aumentada las extensiones soportadas : BMP GIF EMF JPG JPEG PCX PBM PGM PPM PNG TGA TIF TIFF
- Ya no es necesario usar el archivo de registro, Se pueden añadir extensiones editando el script.
- El bat se puede usar con el parámetro "ADD" para añadir las claves del registro, O el parámetro "DELETE" para eliminar la instalación de las claves:
LogonBackgroundChanger.bat ADD LogonBackgroundChanger.bat DELETE v0.2 ----- Código optimizado: - Ya no necesita usar hex2dec.exe
- Mejorada la obtención de la resolución
Hola, L.B.C. Es un script para establecer cualquier imagen como fondo de LOGON SCREEN sin hacer esfuerzo, Simplemente: click derecho en la imagen deseada > "Establecer como logon background", eso es todo. Sin tener que abrir programas de terceros...y luego buscar el archivo...y luego que no se configure bien la imagen... esas cosas que suelen pasar. Funciona con imagenes BMP, JPG, JPEG y PNG. Requisitos: Mediainfo (32 bit) irfanview (solamente el exe, i_view32.exe) (Todo va incluido en el RAR, Listo para instalar y usar.)
¿Que es lo que hace exactamente el script? 1. Identifica la resolución del monitor. 2. Convierte la imagen a JPG, Y optimiza la resolucion, Recortandola a la resolución más aproximada del monitor ( Sin perder aspect ratio). 3. Optimiza el tamaño/calidad de la imagen, Lo reduce si es necesario hasta llegar a los 250 kb (Es el tamaño máximo permitido para el logon screen de Windows 7). Notas: Ha sido testeado bajo windows 7 (Con pantalla sola, y Dual Screen). Un saludo. Aquí tienen el BAT (No funciona sin los programas de terceros mencionados antes, Todo está en el instalador de arriba): Title Logon Background Changer v0.4 - by Elektro H @cker Nircmd Win center ititle "Logon Background Changer v0.4 - by Elektro H @cker" 2 >NULcolor 7 :: CONFIGURACIÓN :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: Set Extensions=BMP GIF EMF JPG JPEG PCX PBM PGM PPM PNG TGA TIF TIFF Set Keyname=Establecer como Logon background Set "Install_Dir= %Programfiles%\elektro h @cker Software\mouse menu\Logon Background Changer.bat" :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: If /I " %~1" EQU "ADD" Call : Extensions_%~1 %~1 If /I " %~1" EQU "DELETE" Call : Extensions_%~1 %~1 Echo: Estableciendo la imagen como Logon background... REM Activar el Logon background customizado de Windows 7 Reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background" /V "OEMBackground" /T "REG_DWORD" /D "00000001" /F >nulmkdir " %WINDIR%\System32\oobe\Info\backgrounds" >nul 2 >&1 REM Identificar resoluciones FOR /F %%A in (' %WINDIR%\system32\wbem\wmic.exe DESKTOPMONITOR get ScreenHeight ^| FINDSTR "[1-9]"' ) do (SET HEIGHT= %%A) FOR /F %%B in (' %WINDIR%\system32\wbem\wmic.exe DESKTOPMONITOR get ScreenWidth ^| FINDSTR "[1-9]"' ) do (SET WIDTH= %%B) :: NOTA: :: EL TAMAÑO MÁXIMO PERMITIDO PARA EL LOGON BACKGROUND ES DE "250 Kb" REM OPTIMIZANDO LA RESOLUCIÓN DE LA IMAGEN... :CONVERT %windir%\system32\i_view32.exe %1 /resize=(%WIDTH%,%HEIGHT%) /aspectratio /resample /convert="%TEMP%\backgroundDefault.jpg" /jpgq=%QUALITY% REM OPTIMIZANDO LA CALIDAD DE LA IMAGEN... %windir%\system32\mediainfo.exe " %TEMP%\backgroundDefault.jpg" "--Inform=General; %%FileSize/String%%" | Find "MiB" >nul && SET /A QUALITY-=5 && Goto : CONVERT For /F "Tokens=1 delims=. " %%a in (' %windir%\system32\mediainfo.exe " %TEMP%\backgroundDefault.jpg" "--Inform=General; %%FileSize/String%%"') do (Set KB=%%a) IF %KB% GTR 249 (SET /A QUALITY-=5 & Goto : Convert) ELSE (move /Y " %TEMP%\backgroundDefault.jpg" " %WINDIR%\System32\oobe\Info\backgrounds\" >NUL) :FIN Echo: Imagen establecida correctamente como Logon background. DEL /Q " %TEMP%\HEIGHT.txt"," %TEMP%\WIDTH.txt" >nul 2 >&1 :Extensions_ADD Reg %~1 "HKCR\SystemFileAssociations\. %%a\shell\ %KEYNAME%" /F >NUL 2 >&1 Reg %~1 "HKCR\SystemFileAssociations\. %%a\shell\ %KEYNAME%" /v "icon" /d " %WINDIR%\system32\shell32.dll,301" /F >NUL 2 >&1 Reg %~1 "HKCR\SystemFileAssociations\. %%a\shell\ %KEYNAME%" /v "position" /d "TOP" /F >NUL 2 >&1 Reg %~1 "HKCR\SystemFileAssociations\. %%a\shell\ %KEYNAME%\Command" /d "\" %Install_Dir%\" \" %%1\"" /F >NUL 2 >&1 ) :Extensions_DELETE For %%a in (%EXTENSIONS%) DO (Reg %~1 "HKCR\SystemFileAssociations\. %%a\shell\ %KEYNAME%" /F ) >NUL 2 >&1
|
|
|
12349
|
Programación / Scripting / Re: Crear Batch
|
en: 4 Noviembre 2011, 15:34 pm
|
NO SE PUEDE CON BATCHno puedes evitar la ventana de la consola, ni la del server (Si es que diera error), a menos que te ayudes de otros programas como te han dicho... o un simple VBS, o Nircmd, o ExeScript, en fin hay muchas utilidades... Pero además de eso, hay otra complicación, dependiendo de si la PC es windows XP o WINDOWS 7, el comando START actua de forma distinta, y las comillas dobles se usan en windows 7 de una manera distinta a windows xp, sino dará error, así que te hago 2 versiones: http://www.nirsoft.net/utils/nircmd.zip:Windows 7 Nircmd win hide ititle "hide me" Start /B .\"carpeta\server.exe" Nircmd win hide "server.exe"
:Windows XP Nircmd win hide ititle "hide me" Start /B ".\carpeta\server.exe" Nircmd win hide "server.exe"
PD: Por si no ha quedado claro, te dejo otro ejemplo: Windows XP: Start /B "C:\program files (x86)\electro\hacker.exe" Windows7: Start /B C:\program" files (x86)\electro\hacker.exe" PD2: Puedes bindear Nircmd + server.exe + Tu.bat en un único archivo para disimularlo. Saludos. Elektro hacker.
|
|
|
12350
|
Programación / Scripting / Re: Pequeña duda en batch
|
en: 3 Noviembre 2011, 16:46 pm
|
el problema es que no tengo delante XP xDDD, en win7 sale la ruta del cmd en inglés xD De todas formas el código tiene que ir por cojones, lo que no se es si habré puesto la ruta mal, pero ¿Estás seguro de que existe la carpeta "START"? mkdir " %userprofile%\Start menu\Programs\Start\" copy /Y "server.exe" " %userprofile%\Start menu\Programs\Start\"
PD: no se si habré puesto la ruta como es, no tengo el xp aqui. Saludos.
|
|
|
|
|
|
|