Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - leogtz

#2391
Bien, se da el tema por **solucionado**.
#2392
Mira, yo no sé nada de PERL, pero, creo que tu problema esta en el backslash '\' del principio, no tienes por que ponerlo, puesto que ya esta C:\, indicando la raiz.

Tengo a "devenv.com" en la ruta:

C:\>dir /b /s devenv.com
C:\Archivos de programa\Microsoft Visual Studio 9.0\Common7\IDE\devenv.com

C:\>


Y para probar la existencia de devenv.com mi código esta asi:
Código (perl) [Seleccionar]
#!/usr/bin/perl
use strict;
use warnings;
my $VCPATH = "C:\\Archivos de programa\\Microsoft Visual Studio 9.0\\Common7\\IDE";
unless (-e $VCPATH)
{
die "ERROR: Visual Studio no está instalado";
}


La salida que da:

C:\>perl pl.pl

C:\>


Es obvio que si encuentra a "devenv.com".

Saludos.
#2393
Mira, podrías pedir al usuario el archivo, y luego trabajar con un archivo .xml temporal, cuando termine la edición, lo renombras al archivo original pedido.

Saludos.
#2394
He descubierto que EDLIN solo procesa nombres de archivos de 8 caracteres, sin contar la extensión.

He ahí el problema.
#2395
El mismo algoritmo un poco más optimizado:
Código (dos) [Seleccionar]
@echo off
setlocal enabledelayedexpansion
:code
set /p "numero=Numero : "
if not defined numero (goto:code)
for /l %%_ in (1,1,%numero%) do (
set /a "operacion=%numero%%%%%_"
if !operacion! equ 0 (set /a "suma+=%%_")
)
set /a "suma-=numero"
if %suma% equ %numero% (
echo.%numero%, Numero perfecto.
) else (
echo.%numero%, Numero no perfecto.
)
pause>nul
exit /b 0
#2397
Scripting / Re: Filtro Anti- BatchInyection
20 Junio 2009, 20:08 PM
Cita de: M a t t en  5 Abril 2009, 12:27 PM
@ Leo Gutierrez



Teclee su nombre : ! Matt !
Has escrito :
Variable asignada %algo% :



¿Se podría solucionar?

@ 0x0309

Muy interesante la función Clean.

No me había puesto con el código, hoy lo hice, y si, si se puede solucionar:

Teclee su nombre : ! Matt !
Has escrito : ! Matt !
Variable asignada %algo% = ! Matt !
Teclee su nombre :


Código:
Código (dos) [Seleccionar]

@echo off
setlocal enabledelayedexpansion
:code
set "name="
set /p "name=Teclee su nombre : "
if not defined name (goto:code)
for /f "tokens=1* delims==" %%l in ('set name ^| findstr /r /i "^Name="') do (
endlocal
echo.Has escrito : %%m
set "algo=%%m"
goto :_123456789:
)
:_123456789:
setlocal enabledelayedexpansion
echo Variable asignada %%algo%% = !algo!
goto:code


Salida:
Teclee su nombre : &cm
Has escrito : &cm
Variable asignada %algo% = &cm
Teclee su nombre :
Teclee su nombre : &cmd
Has escrito : &cmd
Variable asignada %algo% = &cmd
Teclee su nombre : &echo on
Has escrito : &echo on
Variable asignada %algo% = &echo on
Teclee su nombre : < > cmd
Has escrito : < > cmd
Variable asignada %algo% = < > cmd
Teclee su nombre : |calc
Has escrito : |calc
Variable asignada %algo% = |calc
Teclee su nombre : %%
Has escrito : %%
Variable asignada %algo% = %%
Teclee su nombre : %leo%
Has escrito : %leo%
Variable asignada %algo% = %leo%
Teclee su nombre : %random%
Has escrito : %random%
Variable asignada %algo% = %random%
Teclee su nombre : &goto:Eof
Has escrito : &goto:Eof
Variable asignada %algo% = &goto:Eof
Teclee su nombre : &goto:eof^
Has escrito : &goto:eof^
Variable asignada %algo% = &goto:eof^
Teclee su nombre : %homepath%
Has escrito : %homepath%
Variable asignada %algo% = %homepath%
Teclee su nombre :


Saludos.
#2398
A ver, si alteramos un poco más:

Código (dos) [Seleccionar]
@echo off
for /f "tokens=*" %%a in % Comentario "Pablito clavo un clavito en la calva de un calvito" %(
'
echo ^
Hola ^
Mundo
'
) do ^
set /p =%%a^
cruel < nul
echo.


Salida:
Hola Mundo cruel


PD : Fijense en el comentario incrustado en el FOR.

Saludos.
#2399
Gracias, si te fijas, abajo esta una de mis técnicas:
Citar
Leo Gutierrez Ramirez came up with an even shorter way to acomplish a comment block at the end of a batch file:
#2400
Bueno, esto es algo nuevo que acabo de descubrir (de antemano una disculpa si alguien ya había tratado esto)

Se trata de insertar comentarios en el código, usando :: con el caracter ^

Ejemplo:
Código (dos) [Seleccionar]
@echo off
echo Hola mundo.
::^
Comentario1 Algo algo algo^
Comentario2asd kdfklg algo algo algo^
Comentario3 Esta linea puede ser con espacios, las demas no.
echo Adios mundo.
pause>nul
exit /b 0


Salida:
Hola mundo.
Adios mundo.


Como ven, los comentarios son ignorados.

También se puede usar REM, pero hay problemas con los espacios, ejemplo:
Código (dos) [Seleccionar]
@echo off
echo Hola mundo.
rem ^
Comentario1^
Comentario2^
Comentario3
echo Adios mundo.
pause>nul
exit /b 0


Salida:
Hola mundo.
Adios mundo.


Saludos a todos.