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


Tema destacado: ¿Eres usuario del foro? Ahora tienes un Bot con IA que responde preguntas. Lo puedes activar en tu Perfil


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17 18 19 20 21 22
121  Programación / Scripting / Re: Otro uso de call en: 11 Julio 2008, 04:33 am
Por fin lo entendí, gracias a una muy buena explicación que me dio -[black_hack]- y también recordando las palabras de sirdarkcat, de que doble % (%%) inserta un simbolo % que no es interpretado, es como si quieres añadir un carácter especial como ^ (añades ^^)

set letra1=ra
set letra2=ca

set word=rama

call set word=%%word:%letra1%=%letra2%%%

::Desarrollo (con espacios para que se vea mas claro)
::
::set word=%% word: %letra1% = %letra2% %%
::aqui se interpreta el doble %% y deja uno solo
::set word=% word: %letra1% = %letra2% %
::set word=% word: ra = ca %
::set word=%word:ra=ca%
::set word=cama

Al final, el call es para ganar una interpretación más.

De hecho esta página dice lo siguiente: Each CALL does one substitution of the variables. (You can also do CALL CALL... for multiple substitutions)
Código:
http://www.ss64.com/nt/call.html

Por fin lo entendí, y aprendí otras cosas más.  ;D


122  Programación / Scripting / Re: Detector unidades Pendrive 3.3 en: 10 Julio 2008, 22:38 pm
Pido disculpas por tantas modificaciones, pero es que luego de un rato se me ocurré otra cosa, y me digo: podría escribir esto para que quedara más rápido.
La versión 3.3 la dejo como versión final, no creo que le haga más modificaciones, pienso que quedó óptimo ese code, y lo más importante es que se puede utilizar bajo cuenta limitada, pues no llama a diskpart o fsutil.
123  Programación / Scripting / Detector unidades Pendrive 3.3 en: 10 Julio 2008, 15:28 pm
En la siguiente página está la versión 3.4 que es la mejor

Código:
:: DETECTOR DE UNIDADES REMOVIBLES
:: v3.3
:: $author CarlitoS.dll

@echo off

set /a non=1
echo LAS UNIDADES REMOVIBLES ACTUALES SON:
for /f "tokens=1 delims=:" %%a in ('reg query HKLM\SYSTEM\MountedDevices ^| find /i "530054004F00520041"') do call :fil %%a
if %non%==1 (echo Ninguna)

pause
exit

:fil
set dr=%*
set dr=%dr:~-1%
call :lab %dr%
goto :eof

:lab
if exist %1:\ (echo %1 & set /a non=0)
goto :eof

124  Programación / Scripting / Re: Modificar host en: 10 Julio 2008, 13:56 pm
Tal vez este code te pueda servir

Código:
@echo off

set IP-OLD=127.0.0.1
set IP-NEW=0.0.0.0

set file=%SystemRoot%\system32\drivers\etc\hosts

for /f "tokens=*" %%a in (%file%) do call :wri %%a
type "%file%.bak" > "%file%"
del /f /q /a "%file%.bak"
goto :eof

:wri
set lin=%*
call set lin=%%lin:%IP-OLD%=%IP-NEW%%%
echo %lin%>>"%file%.bak"
goto :eof

125  Programación / Scripting / Detector Unidades Removibles 5.0c en: 10 Julio 2008, 06:45 am
Código:

::DETECTOR OF REMOVABLE DEVICES [V5.0c Final] author CarlitoS.dll
::carlitosdll.blogspot.com
::Tested in Windows 2000 and XP. Not works in Windows 98 and Me.

@echo off
if "%errorlevel%"=="" goto other

echo Mounted removable devices detected
echo ----------------------------------

ver | findstr "2000 NT" >NUL && goto NT2000

:XPVISTASEVEN
for /f "tokens=3 delims=\:" %%a in ('reg query HKLM\SYSTEM\MountedDevices ^| find "530054004F00520041"') do (
dir /a %%a:\ >NUL 2>&1 && echo.%%a:)
pause
goto :eof

:NT2000
regedit /e "%temp%\devices.dat" "HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices"
for /f "tokens=3 delims=\:" %%a in ('find /i "DosDevices" ^< "%temp%\devices.dat" ^| find /i "53,00,54,00,4f,00,52,00,41"') do (
dir /a %%a:\ >NUL 2>&1 && echo.%%a:)
del /f /q "%temp%\devices.dat" >NUL
pause
goto :eof

:other
echo Current batch is not supported in this Operating System version.
exit

126  Programación / Scripting / Detector unidades Pendrive 2.0 en: 10 Julio 2008, 06:15 am
Más adelante está la versión 3.3.
------------------
Código:

::Detector de unidades removibles
::v2.0 by CarlitoS.dll

@echo off
reg.exe export HKLM\SYSTEM\MountedDevices "%tmp%\dev.dat" >nul

set /a non=1
echo LAS UNIDADES REMOVIBLES ACTUALES SON:
for /f "tokens=1 delims==" %%a in ('type "%tmp%\dev.dat" ^| find /i "\\DosDevices\\" ^| sort ^| find /i "53,00,54,00,4f,00,52,00,41"') do call :fil %%a
if %non%==1 (echo Ninguna)

pause
exit

:fil
set dr=%*
set dr=%dr:~-3,1%
call :lab %dr%
goto :eof

:lab
if exist %1:\ (echo %1 & set /a non=0)
goto :eof

127  Programación / Scripting / Re: Otro uso de call en: 10 Julio 2008, 06:14 am
No sé porque funciona así, pero sé que funciona :D
Estoy aprendiendo.
128  Programación / Scripting / Otro uso de call en: 10 Julio 2008, 02:23 am
Publico otro uso de call, que estoy aprendiendo

Esto es lo que llevo:

Código:

@echo off


:: Lo que sería:
:: set word=%word:%letra1%=%letra3%%
::
:: Ejemplo:
::
::     set word=%word:%letra1%=%letra3%%
::
::                    %word:%letra1%=%letra3%%
::call set  word =  [%] %word:%letra1%=%letra3%% [%]
:: se añade un % al principio y otro al final %
::
:: Finalmente queda:
::
::call set word=%%word:%letra1%=%letra3%%%


set letra1=ra
set letra2=ma
set letra3=ca
set letra4=sa

set word=rama


echo %word%
::muestra rama

call set word=%%word:%letra1%=%letra3%%%
call set word=%%word:%letra2%=%letra4%%%

echo %word%
::muestra casa

pause

set inicio=1
set fin=1

echo %word%

call echo %%word:~%inicio%,%fin%%%
::muestra a

echo %word%
::muestra casa

set inicio=2
set fin=3


call set word=%%word:~%inicio%,%fin%%%
echo %word%
::muestra sa

pause

129  Programación / Scripting / Re: No entiendo estos bats en: 10 Julio 2008, 01:59 am
Cada persona decide qué lenguajes y métodos utilizar para hacer las cosas.

Wikipedia también habla de los Trolls
Código:
http://es.wikipedia.org/wiki/Troll_%28Internet%29
130  Programación / Scripting / Re: [batch] Problema extraño en: 10 Julio 2008, 01:16 am
buen dato kraszic, es decir solo el dos es par y es primo, y con el dato que diste se puede hacer el cálculo mucho más rápido. Ahora leí que los que terminan en 5, y son mayores que 5, son múltiplos de 5, así es que no son primos.

Aquí modifiqué el code, para que quedara más rápido.

Código:
::CarlitoS.dll
::Graba en archivo numeros primos

@echo off

set /a inicio=2
set /a fin=10000

if %inicio% LEQ 2 (set /a inicio=3 & call :divi 2)
for /l %%n in (%inicio%,2,%fin%) do call :divi %%n
goto :eof

:divi
cls & echo Working . .
set esPrimo=false
set /a divini=1
set /a divfin=%1
if %divfin:~-1%==5 (if %1 GTR 5 (goto :eof))
call :divi2 %1
if %esPrimo%==true (echo %1 >>primos.txt)
goto :eof

:divi2
cls & echo Working . . .
if %esPrimo%==true (goto :eof)
set /a divini +=1
if %divini% GTR %divfin% (goto :eof)
set /a mod=%1-(%1/%divini%*%divini%)
if not %mod%==0 (goto divi2)
if %mod%==0 (if not %1==%divini% (set esPrimo=false) else (set esPrimo=true))
goto :eof

Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17 18 19 20 21 22
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines