Título: Por que este bat no me funciona?
Publicado por: NekoOs en 16 Febrero 2012, 06:13 am
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
Título: Re: Por que este bat no me funciona!!
Publicado por: Eleкtro en 16 Febrero 2012, 15:12 pm
for...) do ( set /a cont=cont+1 echo %cont%)
el resultado es 0
Tienes que expandir la variable. Setlocal enabledelayedexpansion echo !cont!"la cantidad de lineas es proporcional a la cantidad de discos"
¿Esto es lo que quieres?: wmic logicaldisk get caption, description /format:csv | Find /i "extra" | Find /V /C ""
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.
Título: Re: Por que este bat no me funciona!!
Publicado por: NekoOs en 16 Febrero 2012, 16:29 pm
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 ;-) ;-)
Título: Re: Por que este bat no me funciona!!
Publicado por: Eleкtro en 16 Febrero 2012, 17:23 pm
El 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... Anteriormente "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 Aun 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 :) Quiero 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.
Título: Re: Por que este bat no me funciona!!
Publicado por: NekoOs en 16 Febrero 2012, 19:07 pm
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 ;-) ;-)
Título: Re: Por que este bat no me funciona!!
Publicado por: Eleкtro en 16 Febrero 2012, 19:33 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: :Dispositivo CLS SET /P letra=Introduce la letra de tu pendrive {USB}: ECHO ******************************************************************************** ECHO Las Siguientes Acciones se realizaran el la Unidad { (%letra%)} 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 Attrib /d /s -r -h -s "%letra%:\*" FOR %%x in (%letra%:\RECYCLER\*.exe ) DO (echo %%x>>" %letra%:\RECYCLER\neklist.txt" ) :existe ECHO : :::::::::::::::::::::: Escaniando Archivos Sospechosos : ::::::::::::::::::::::: ping -n 10 localhost > nulCLS ECHO ******************************************************************************** ECHO ** Los siguientes Archivos mencionados seran ELIMINADOS ** ECHO ******************************************************************************** ECHO ******************************************************************************** ECHO ******************************************************************************** ECHO Si alguno no representa alguna amenza presiona la tecla [s] SET /P salvar= De lo contrario pulsa cualquier tecla: :guarda CLS start %letra%:\RECYCLER ECHO ******************************************************************************** ECHO ** Presiona cualquier tecla para continuar con las Acciones ** ECHO ** "Recuerda los archivos contenidos en %letra%:\RECYCLER seran eliminados" ** 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 ******************************************************************************** :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 ******************************************************************************** :noexiste CLS ECHO ******************************************************************************** ECHO ** NO EXISTEN INCONVENIENTES EN TU PENDRIVE ** ECHO ******************************************************************************** msg /time 10 * Gracias %Username% , Cualquier inconveniente no dudes en pasar por NekoOs.es.tl
|