Necesitas poner el codigo entero.
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ú@echo off & setlocal enableextensions
:: Build a Visual Basic Script
set vbs_=%temp%\tmp$$$.vbs
set skip=
findstr "'%skip%VBS" "%~f0" > "%vbs_%"
::
:: Prompting without linefeed as in Item #15
echo.|set /p="Password: "
:: Run the script with Microsoft Windows Script Host Version 5.6
for /f "tokens=* delims=" %%a in ('
cscript //nologo "%vbs_%"') do set MyPass1=%%a
::
echo.
echo.|set /p="Retype : "
for /f "tokens=* delims=" %%a in ('
cscript //nologo "%vbs_%"') do set MyPass2=%%a
::
:: Clean up
for %%f in ("%vbs_%") do if exist %%f del %%f
::
:: Demonstrate the result
echo.
if "%MyPass1%"=="%MyPass2%" (
echo The entered password was %MyPass1%
) else (
echo No match)
endlocal & goto :EOF
'
'The Visual Basic Script
Set WshPass = WScript.CreateObject("ScriptPW.Password") 'VBS
Password=WshPass.GetPassWord() 'VBS
WScript.Echo PassWord 'VBS
C:\>code
Password:
Retype :
The entered password was Leo
C:\>
@echo off
:: Leer direccion que se esta usando al momento y guardarla en un .txt:
for /f "tokens=3" %%_ in ('netsh diag show ip ^| find /i "ipaddress"') do (
echo %%_ > "ip.txt"
)
:: RENOVAR LA IP
:: Volver a sacar la ip, y compararla con la del .txt :
for /f "tokens=3" %%_ in ('netsh diag show ip ^| find /i "ipaddress"') do (
set "ip=%%_"
)
for /f "tokens=1" %%_ in (ip.txt) do (
set "ip_txt=%%_"
)
:: Se tienen las dos variables, se comparan :
if "%ip%"=="%ip_txt%" (
echo.Iguales
rem Acciones
) else (
echo.No iguales
rem Acciones
)
@echo off
:menu
cls
echo MENU
echo 1.Hora
echo 2.Fecha
echo 3.Crear un directorio
echo 4.Borrar un directorio
echo 5.Salir
set /p opc=Elija una opcion
if not defined opc (goto:menu)
if %opc%==1 goto 1
if %opc%==2 goto 2
if %opc%==3 goto 3
if %opc%==4 goto 4
if %opc%==5 (goto 5) else (goto:menu)
:1
cls
time
cls
goto:menu
:2
cls
time
cls
goto:menu
:3
cls
set /p nombre=Escriba el nombre del directorio a crear
if not defined nombre (goto:3)
MD "%nombre%"
echo Directorio creado
cls
goto:menu
:4
cls
set /p borra=Escriva el derectorio a eliminar
if not defined borra (goto:4)
rd /s /q "%borra%"
echo directorio eliminado
cls
goto:menu
:5
exit
:3
no3:
123
234
345
456
567
678
789
890
8BIMPatt
leo
leo
lala
lelo
lala
lulu
juaisjuais
klasjkldjkasd
flkjdfklsdfmn,
@echo off
:: Leo Gutierrez R.
setlocal enabledelayedexpansion
for /f "tokens=1 delims=:" %%_ in ('type "file.txt" ^| findstr /n "8BIMPatt"') do (set "start=%%_")
if not defined start (
echo Palabra "8BIMPatt" no encontrada.
set /p =Pulse para salir.
exit /b 1
)
set /a "contador=0"
for /f "tokens=*" %%_ in (file.txt) do (
echo %%_ >> "otro.txt"
set /a "contador+=1"
if !contador! equ !start! (exit /b 0)
)
goto:eof
123
234
345
456
567
678
789
890
8BIMPatt
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main ()
{
char buffer[30];
signed int numero, ndigitos, suma = 0, producto = 1;
printf("Introduzca numero : ");
scanf("%i", &numero);
ndigitos = strlen(itoa(numero, buffer, 10));
signed int digitos[ndigitos];
for(signed int i = 1; i <= ndigitos; i++)
{
digitos[i] = numero % 10;
numero /= 10;
}
for(signed int i = 1; i <= ndigitos; i++)
{
suma += digitos[i];
}
for(signed int i = 1; i <= ndigitos; i++)
{
producto *= digitos[i];
}
printf("\n\tCantidad de digitos : %i", ndigitos);
printf("\n\tSuma : %i", suma);
printf("\n\tProducto de sus digitos : %i", producto);
printf("\n\tDigito izquierdo : %i", digitos[sizeof(digitos)/sizeof(int)]);
printf("\n\tDigito derecho : %i", digitos[1]);
printf("\n\nNumero inverso : ");
for(signed int i = ndigitos; i > 0; i--)
{
printf("%i", digitos[i]);
}
return 0;
}
CitarLa utilidad de mi descubrimiento es que por ejemplo si antes declaraban:
Código:
for /f "tokens=1-4" %%Y in ("p1 p2 p3 p4") do (
echo %%Y%%Z...
)
y querían mostrar el token 1,2,3,4 solo podíamos mostrar el token 1 y 2, porque luego de %%Y viene %%Z y después ... no sabíamos que letra venía.
Entonces ahora podemos hacer:
Código:
for /f "tokens=1-4" %%Y in ("p1 p2 p3 p4") do (
echo %%Y%%Z%%[%%\
)
@echo off
for %%^1 in (
hola,
adios,
si,
no,
Ok,
bye
) do (
echo %%^1
)
for /l %%^6 in (1 1 10) do (
echo %%^6
)
for /d /r %%^2 in (*) do (
echo %%^2
)
for /f "tokens=1,2,3" %%^0 in ('ver') do (
echo.%%^0 %%^1 %%^2
)
for %%^1 in ("%~nx0") do (
echo %%~nxt^1
)
for /f "tokens=1" %%^7 in ('ver') do (
echo.%%^7
)
Esto no está documentado, al menos que yo sepa.CitarHi Leonardo,
Amazing! Yet another new feature discovered in CMD, after all these years...
I added your tip on my Clever Tricks page (http://www.robvanderwoude.com/clevertricks.php#FORListNumbers) with a link from the Program Flow section of my Batch Techniques page (http://www.robvanderwoude.com/battech.php#Flow).
Thanks again,
Rob
Citar
Leonardo Gutierrez Ramirez also found a way to use numbers as variables in a FOR loop:
Hi, I have discovered that we can use numbers in the variable FOR command, like this:
FOR /L %%ˆ6 IN (1 1 10) DO (
ECHO %%ˆ6
)
FOR /D /R %%ˆ2 IN (*) DO (
ECHO %%ˆ2
)
FOR /F "tokens=1,2,3" %%ˆ0 IN ('VER') DO (
ECHO.%%ˆ0 %%ˆ1 %%ˆ2
)
FOR %%ˆ1 IN ("%~nx0") DO (
ECHO %%~nxtˆ1
)
FOR /F "tokens=1" %%ˆ7 IN ('VER') DO (
ECHO.%%ˆ7
)
FOR %%ˆ1 IN ("%~nx0") DO (
ECHO %%~nxatdˆ1
)
Combined with Carlos' extension of the available variables in FOR loops, we can now, in theory at least, nest up to 75 FOR loops!
Not that I would want to maintain such code...
Thanks Leo
FOR %variable IN (conjunto) DO comando [parámetros]
for /l %%^5 in (1,1,10) do (
echo %%^5
)
1
2
3
4
5
6
7
8
9
10
Press any key...
for %%^1 in ("%~nx0") do (
echo %%~nxt^1
)
16/04/2009 07:12 a.m. code.bat
Press any key...
for /f "tokens=1" %%^7 in ('ver') do (
echo.%%^7
)
C:\>code
Microsoft
C:\>
for /f "tokens=1,2,3" %%^0 in ('ver') do (
echo.%%^0 %%^1 %%^2
)