hasta ahora estoy haciendo prueba con:
@echo off
set /a cont=0
:inicio
for /f "tokens=1" %%x in ('wmic logicaldisk get caption^, description ^| find /i "extra"') do (
set /a cont=cont+1
echo %cont%)
pause
pero ni asi, :huh: el resultado es una cantidad de lineas con resultado 0 "la cantidad de lineas es proporcional a la cantidad de discos"
esta pequeña parte funciona de maravilla
for /f "tokens=1" %%x in ('wmic logicaldisk get caption^, description ^| find /i "extra"') do (echo %%x)
la idea es llegar aqui:
@echo off
set /a cont=0
:inicio
for /f "tokens=1" %%x in ('wmic logicaldisk get caption^, description ^| find /i "extra"') do (
set /a cont=cont+1
echo %cont%
set /a var[%cont%]=%%x
pause
Cita de: Nefkofan en 16 Febrero 2012, 06:13 AM
for...) do (
set /a cont=cont+1
echo %cont%)
el resultado es 0
Tienes que expandir la variable.
Setlocal enabledelayedexpansion
echo !cont!Cita de: Nefkofan en 16 Febrero 2012, 06:13 AM
"la cantidad de lineas es proporcional a la cantidad de discos"
¿Esto es lo que quieres?:
@echo off
wmic logicaldisk get caption, description /format:csv | Find /i "extra" | Find /V /C ""
pause
EDITO:
O esto?...
@echo off
Setlocal enabledelayedexpansion
For /F "Tokens=2 delims=," %%# in ('wmic logicaldisk get caption^, description /format:csv ^| Find /i "extra"') do (Set /A cont+=1& Set Var!Cont!=%%#)
Echo %Var1%
Echo %Var2%
pause>NUL
Saludos.
EDITO:
O esto?...
@echo off
Setlocal enabledelayedexpansion
For /F "Tokens=2 delims=," %%# in ('wmic logicaldisk get caption^, description /format:csv ^| Find /i "extra"') do (Set /A cont+=1& Set Var!Cont!=%%#)
Echo %Var1%
Echo %Var2%
pause>NUL
Saludos.
Realmente era esto lo que queria ;-) ahora se me hace raro ya que la expansion ya la habia usado sin exito claro esta, quisiera hacerte unas preguntas solo por curiosidad:
- El uso de # como variable en el for es solo un hecho caprichoso o debo evitar usar letras?
- Anteriormente "claro esta no en FOR" contador=contador+1 me ha funcionado porque aqui no :huh:
- Quiero hacer una modificacion mas el caso es que deseo el nombre de cada unidad extraible "me refiero a la etiqueta" :P
- Aun no comprendo bien el uso de estos caracteres |, &
Gracias por todo enserio me has sido de gran ayuda ;-) ;-)
Cita de: Nefkofan en 16 Febrero 2012, 16:29 PMEl uso de # como variable en el for es solo un hecho caprichoso o debo evitar usar letras?[/li][/list]
Un capricho y una costumbre, Solo uso letras cuando el FOR tiene que trabajar con más de un token. Ejemplo: "Echo %%a %%b %%c"
Uso un caracter especial en la variable cuando el FOR solo trabaja UN token, Así no hay despistes cuando se hace un script muy largo, etc...
Cita de: Nefkofan en 16 Febrero 2012, 16:29 PMAnteriormente "claro esta no en FOR" contador=contador+1 me ha funcionado porque aqui no :huh:
Por lo que dije antes, Tienes que expandir la variable dentro del FOR
Cita de: Nefkofan en 16 Febrero 2012, 16:29 PMAun no comprendo bien el uso de estos caracteres |, &
Nada que no se solucione con la lectura de algún manual básico de esta misma sección :)
Cita de: Nefkofan en 16 Febrero 2012, 16:29 PMQuiero hacer una modificacion mas el caso es que deseo el nombre de cada unidad extraible "me refiero a la etiqueta" :P
EDITO: Código modificado (Simplificado xD)
@Echo off
Setlocal enabledelayedexpansion
:Drives
For /F "Tokens=2,4* delims=," %%A in ('wmic logicaldisk get caption^, description^, volumename /format:csv ^| Find /i "extra"') do (
Set /A NUM+=1
Set Unidad!NUM!=%%A
Set Etiqueta!NUM!=%%B
)
Set Num=1
:Print
If Defined Unidad!NUM! (Echo: !Unidad%NUM%! !Etiqueta%NUM%! | MORE & Set /A Num+=1& Goto :Print)
Pause
Exit
Salu2.
es agradable contar con personas tan atentas como tu EleKtro H@cker ;D
sabes en realidad esto es solo una parte de mi proyecto soy muy novato [cuando digo novato hablo en serio] seguramente uso comandos inoficiosos pero entenderas que trato de llevar mi logica jejje mira si no te molesta publico un link que muestra el codigo que genere gracias a tu ayuda.
Merecera un comentario en tu nombre (http://ideone.com/UFAzC)
notaras que en la linea 7 hablo de unas Acciones, pues aqui las posteo
Codigo fuente objetivo (http://ideone.com/OfctP)
si no te molesta podrias ver un poco el code y darme tu opinion :silbar:
en todo caso gracias ya por todo lo que has echo ;-) ;-)
Cita de: Nefkofan en 16 Febrero 2012, 19:07 PM
si no te molesta podrias ver un poco el code y darme tu opinion :silbar:
Claro, te doy mi opinión...
Más que nada solo hace falta corregir algunas erratas y escribir bien la syntax
Ping ..... > NullPing ..... > NULIF %salvar=="s" falta un simbolo de porcentaje en la variabe (
%salvar)
IF /i "%salvar%" EQU "s" así además puedes teclear "s" y "S" y dar la tecla por válida.
*.* Eso no trabaja sobre todos los archivos, Solo lo hace sobre archivos que tengan extensión. (caracter<punto>caracter)
*msg Gracias Usuariomsg Gracias %Username% Así queda más chulo xD, Si no te funcionase escribe: %%username%%
Por lo demás no he podido analizarlo a fondo.
Toma:
@ECHO OFF
MODE CON LINES=25
MODE CON COLS=81
:Dispositivo
CLS
SET /P letra=Introduce la letra de tu pendrive {USB}:
If NOT defined letra (Goto :Dispositivo)
ECHO ********************************************************************************
ECHO ** **
ECHO Las Siguientes Acciones se realizaran el la Unidad {(%letra%)}
ECHO ** **
ECHO ********************************************************************************
ECHO.
ECHO Des-Ocultar los Archivos y Carpetas Contenidos en %letra%:\
ECHO Eliminar Accesos Directos Contenidos en %letra%:\
ECHO Timar Programas Malicioso {Archivos.exe} Contenidos en %letra%:\RECYCLER
ECHO.
IF NOT EXIST "%letra%:\RECYCLER" (MKDIR "%letra%:\RECYCLER")
if exist "%letra%:\*.lnk" (del "%letra%:\*.lnk")
Attrib /d /s -r -h -s "%letra%:\*"
FOR %%x in (%letra%:\RECYCLER\*.exe) DO (echo %%x>>"%letra%:\RECYCLER\neklist.txt")
IF EXIST "%letra%:\RECYCLER\neklist.txt" (goto :existe) else (goto :noexiste)
:existe
ECHO ::::::::::::::::::::::: Escaniando Archivos Sospechosos ::::::::::::::::::::::::
ping -n 10 localhost > nul
CLS
ECHO ********************************************************************************
ECHO ** **
ECHO ** Los siguientes Archivos mencionados seran ELIMINADOS **
ECHO ** **
ECHO ********************************************************************************
ECHO.
ECHO ********************************************************************************
ECHO.
FOR %%x in (%letra%:\RECYCLER\*.exe) DO (echo %%x)
ECHO.
ECHO ********************************************************************************
ECHO.
ECHO Si alguno no representa alguna amenza presiona la tecla [s]
SET /P salvar= De lo contrario pulsa cualquier tecla:
If not defined salvar (Goto :Existe)
IF /i "%salvar%" EQU "s" (goto :guarda) ELSE (goto :nguarda)
:guarda
CLS
start %letra%:\RECYCLER
ECHO ********************************************************************************
ECHO ** **
ECHO ** Presiona cualquier tecla para continuar con las Acciones **
ECHO ** "Recuerda los archivos contenidos en %letra%:\RECYCLER seran eliminados" **
ECHO ** **
ECHO ********************************************************************************
PAUSE>NUL
ECHO.
FOR /F %%1 IN (%letra%:\RECYCLER\neklist.txt) DO (DEL %%1)
FOR /F %%1 IN (%letra%:\RECYCLER\neklist.txt) DO (MKDIR %%1)
DEL "%letra%:\RECYCLER\neklist.txt"
CLS
ECHO ********************************************************************************
ECHO ** AHORA PUEDES DISFRUTAR DE TU USB **
ECHO ** Podras Insertarla en el PC que te ha contaminado sin preocupacion de una **
ECHO ** reinfeccion del mismo virus **
ECHO ********************************************************************************
PAUSE>NUL
:nguarda
FOR /F %%1 IN (%letra%:\RECYCLER\neklist.txt) DO (DEL %%1)
FOR /F %%1 IN (%letra%:\RECYCLER\neklist.txt) DO (MKDIR %%1)
DEL "%letra%:\RECYCLER\neklist.txt"
CLS
ECHO ********************************************************************************
ECHO ** AHORA PUEDES DISFRUTAR DE TU USB **
ECHO ** Podras Insertarla en el PC que te ha contaminado sin preocupacion de una **
ECHO ** reinfeccion del mismo virus **
ECHO ********************************************************************************
PAUSE>NUL
:noexiste
CLS
ECHO ********************************************************************************
ECHO ** **
ECHO ** NO EXISTEN INCONVENIENTES EN TU PENDRIVE **
ECHO ** **
ECHO ********************************************************************************
PAUSE>NUL
msg /time 10 * Gracias %Username% , Cualquier inconveniente no dudes en pasar por NekoOs.es.tl