Normas del foro

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación? - Enero 08, 2009, 10:10:51
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación  |  Batch (Moderadores: Espectro Infernal, |Shadow|)  |  Tema: Hay alguna forma de... 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] 2 Ir Abajo Imprimir
Autor Tema: Hay alguna forma de...  (Leído 827 veces)
DrakoX
Habitual
*****
Desconectado Desconectado

Mensajes: 365


favor@depreguntar.com
Ver Perfil
« en: Marzo 04, 2006, 12:00:22 »

bueno,
ni dida es la siguiente,
logicamente, poniendo:

CD C:\a~1

se deberia entrar a la primera carpeta con la letra a q este en el  C:\,
pero esto no c puede hacer debido a q se necesitan almenos los primeros 6 caracteres con los q empiesa la carpeta y luego ~1.

Mi pregunta es, habria alguna forma de acceder a la priemra carpeta con la letra a sin nisiquiera saber el nombre de la carpeta, seria como entrar a una carpeta aleatoria.
esto es posible??

salu2 y dede ya gracias.
En línea

enigma_pe
The life doesn't finish today...Although I would like it happens!!
Miembro
*****
Desconectado Desconectado

Mensajes: 86



Ver Perfil
« Respuesta #1 en: Marzo 04, 2006, 12:23:04 »

cd a*

agarra uno que empiece con a


Pero para que lo necesitas...xq tiene un criterio

Wink
« Última modificación: Marzo 04, 2006, 12:23:48 por enigma_pe » En línea

C...I will never forget you...You are so cool but at  the same ..you are so far
DrakoX
Habitual
*****
Desconectado Desconectado

Mensajes: 365


favor@depreguntar.com
Ver Perfil
« Respuesta #2 en: Marzo 04, 2006, 12:30:18 »

Bueno,
esta primera parte andubo,
ahora lo segundo,
como podria hacer para entrar a una carpeta,
en el c:\, por ej:

Abc ----> esta esta primera x orden A-Z
Azx ----> esta esta segunda.

como puedo hacer para entrar a esta segunda, desconociendo su nombre???.

salu2 y mcuhas gracias

PD: Si logro hacer esto, les voy a hacer un code, q les puede llegar a interesar mucho.
En línea

iobh
Magic Flames
Colaborador
*****
Desconectado Desconectado

Mensajes: 693


Odi Profanum Vulgus et Arceo


Ver Perfil
« Respuesta #3 en: Marzo 04, 2006, 04:19:13 »

La verdad no te entindi muy bien  ; :-\

quizas esto es a lo que te referias

dir /b /a:d a* > file.tst
for /f "skip=1" %%a in (file.tst) do set dir1=%%a
cd %dir1%
pause

es eso??

o lo que podria pasar es si en el c:\ hay mas de una carpeta que empiese con a tendriamos un problema
pero si savemos que la carpeta tiene 3 letras seria haci

dir /b /a:d a??> file.tst
for /f "skip=1" %%a in (file.tst) do set dir1=%%a
cd %dir1%
pause

on no?

Salu2
« Última modificación: Marzo 04, 2006, 04:23:50 por iobh » En línea

"No entiendes realmente algo a menos que seas capaz de explicarselo a tu abuela."

-Albert Einstein

DrakoX
Habitual
*****
Desconectado Desconectado

Mensajes: 365


favor@depreguntar.com
Ver Perfil
« Respuesta #4 en: Marzo 04, 2006, 10:51:53 »

la verda no entendi mcuho lo qme dijiste iohb,
pero lo q yo estoy diciendo, es ej:

si ahy mas de una carpeta q empiese con la letra a,
y desconociendo su nombre,
como se podria hacer para acceder a ellas??

ya q si se pone cd c:\a* el bat entraria a la primera carpeta en orden alfabetico q empiese por la letra a, pero yo quiero acceder a otra q no es la primera, como se haria??

si no c entiende me dicen q intento aclararlo un poco mas.
En línea

iobh
Magic Flames
Colaborador
*****
Desconectado Desconectado

Mensajes: 693


Odi Profanum Vulgus et Arceo


Ver Perfil
« Respuesta #5 en: Marzo 05, 2006, 06:58:26 »

prueba con lo que te dije antes..

esto

dir /b /a:d a* > file.tst
for /f "skip=1" %%a in (file.tst) do set dir1=%%a
cd %dir1%
pause

eso mostrara todos los directorios que empiezan con a y salta la primera linea y crea una variable con la segunda, osea son la segunda carpeta.

o lo que podria pasar es si en el c:\ hay mas de una carpeta que empiese con a tendriamos un problema
pero si savemos que la carpeta tiene 3 letras seria haci

dir /b /a:d a??> file.tst
for /f "skip=1" %%a in (file.tst) do set dir1=%%a
cd %dir1%
pause

Salu2
En línea

"No entiendes realmente algo a menos que seas capaz de explicarselo a tu abuela."

-Albert Einstein

DrakoX
Habitual
*****
Desconectado Desconectado

Mensajes: 365


favor@depreguntar.com
Ver Perfil
« Respuesta #6 en: Marzo 05, 2006, 08:25:34 »

ok ahora entendi,
y esto:

%%a

esta "a", hay q cambiarla dependiendo de la letra con la q empiese la carpeta???

salu2
En línea

iobh
Magic Flames
Colaborador
*****
Desconectado Desconectado

Mensajes: 693


Odi Profanum Vulgus et Arceo


Ver Perfil
« Respuesta #7 en: Marzo 05, 2006, 08:31:30 »

nop XD

%%a es una variable que usa el comando for

te explico linea por linea

dir /b /a:d a* > file.tst
for /f "skip=1" %%a in (file.tst) do set dir1=%%a
cd %dir1%
pause

dir /b /a:d a* > file.tst
::crea un archivo con la lista de archivos que empiesan con a
for /f "skip=1" %%a in (file.tst) do set dir1=%%a
::en el archivo file.tst va a saltar una linea y va a crear una variable con la segunda.
cd %dir1%
:va a ir a la variable que creamos (%dir1%) que es igual a la segunda linea del file.tst
pause

Solo pruebalo

donde tienes que cambiar la letra con la que empiesa es
en
dir /b /a:d a* > file.tst
dir /b /a:d b* > file.tst
dir /b /a:d c* > file.tst
dir /b /a:d d* > file.tst
dir /b /a:d etc* > file.tst

Salu2
En línea

"No entiendes realmente algo a menos que seas capaz de explicarselo a tu abuela."

-Albert Einstein

DrakoX
Habitual
*****
Desconectado Desconectado

Mensajes: 365


favor@depreguntar.com
Ver Perfil
« Respuesta #8 en: Marzo 05, 2006, 08:36:23 »

ok muchas gracias.
ahora voy a probar si anda con lo q yo quiero hacer,
y les posteo un code.

salu2
En línea

DrakoX
Habitual
*****
Desconectado Desconectado

Mensajes: 365


favor@depreguntar.com
Ver Perfil
« Respuesta #9 en: Marzo 05, 2006, 08:45:38 »

solo hay un problema en este code:

dir /b /a:d a* > file.tst
for /f "skip=1" %%a in (file.tst) do set dir1=%%a
cd %dir1%
pause

q aunque cambies el skip=1 por skip=2 o 3,
no me entra a otra carpeta, me entra siempre a la misma q la
skip=1.

salu2
En línea

iobh
Magic Flames
Colaborador
*****
Desconectado Desconectado

Mensajes: 693


Odi Profanum Vulgus et Arceo


Ver Perfil
« Respuesta #10 en: Marzo 05, 2006, 10:33:33 »

a mi si me entra, te muestro la ejecucion del programa en mi pc

C:\>dir /b /a:d a*  1>file.tst

C:\>for /F "skip=1" %a in (file.tst) do set dir1=%a

C:\>set dir1=azx

C:\>cd azx

C:\azx>pause
Press any key to continue . . .


ah y aqui esta el file.tst
airwar3
azx


Me podrias mostrar la ejecucion de tu programa?

Salu2
En línea

"No entiendes realmente algo a menos que seas capaz de explicarselo a tu abuela."

-Albert Einstein

DrakoX
Habitual
*****
Desconectado Desconectado

Mensajes: 365


favor@depreguntar.com
Ver Perfil
« Respuesta #11 en: Marzo 05, 2006, 10:46:53 »

a mi tmb me entra,
pero lo q te digo, es q si tenes 5 carpetas q empiesen x la "a",
y pones skip=2 o 3 o etc,
te va a entrar a la misma carpeta q la skip=1.
osea x mas q cambies el num del skip, te va a entra a la carpeta del skip=1,
alemos eso me pasa a mi, pruebalo tu.

salu2
En línea

Zegius
Batch Revolution
Colaborador
*****
Desconectado Desconectado

Mensajes: 595



Ver Perfil WWW
« Respuesta #12 en: Marzo 05, 2006, 11:02:04 »

En línea



iobh
Magic Flames
Colaborador
*****
Desconectado Desconectado

Mensajes: 693


Odi Profanum Vulgus et Arceo


Ver Perfil
« Respuesta #13 en: Marzo 05, 2006, 11:32:16 »

Por eso quero saltar la primera carpeta

la verda no entendi mcuho lo qme dijiste iohb,
pero lo q yo estoy diciendo, es ej:

si ahy mas de una carpeta q empiese con la letra a,
y desconociendo su nombre,
como se podria hacer para acceder a ellas??

ya q si se pone cd c:\a* el bat entraria a la primera carpeta en orden alfabetico q empiese por la letra a, pero yo quiero acceder a otra q no es la primera, como se haria??

si no c entiende me dicen q intento aclararlo un poco mas.

Salu2
En línea

"No entiendes realmente algo a menos que seas capaz de explicarselo a tu abuela."

-Albert Einstein

DrakoX
Habitual
*****
Desconectado Desconectado

Mensajes: 365


favor@depreguntar.com
Ver Perfil
« Respuesta #14 en: Marzo 05, 2006, 05:49:18 »

entonces como hago si quiero entrar a la tercera carpeta con la letra a??

salu2
En línea

iobh
Magic Flames
Colaborador
*****
Desconectado Desconectado

Mensajes: 693


Odi Profanum Vulgus et Arceo


Ver Perfil
« Respuesta #15 en: Marzo 05, 2006, 06:15:34 »

dir /b /a:d a* > file.tst
for /f "skip=2" %%a in (file.tst) do set dir1=%%a
cd %dir1%
pause

salu2

PD: "skip=2"
En línea

"No entiendes realmente algo a menos que seas capaz de explicarselo a tu abuela."

-Albert Einstein

DrakoX
Habitual
*****
Desconectado Desconectado

Mensajes: 365


favor@depreguntar.com
Ver Perfil
« Respuesta #16 en: Marzo 05, 2006, 06:37:39 »

tecnicamente si,
pero no lo hace,
aca te dejo mi salida del bat.
este es el code del bat:

###################

cd c:\
cd a*
dir /b /a:d a* > file.tst
for /f "skip=2" %%a in (file.tst) do set dir1=%%a
cd %dir1%
pause

###################

y esta es la salida:

###################



###################

salu2
En línea

Zegius
Batch Revolution
Colaborador
*****
Desconectado Desconectado

Mensajes: 595



Ver Perfil WWW
« Respuesta #17 en: Marzo 06, 2006, 06:36:39 »

En línea



DrakoX
Habitual
*****
Desconectado Desconectado

Mensajes: 365


favor@depreguntar.com
Ver Perfil
« Respuesta #18 en: Marzo 06, 2006, 06:46:08 »

la linea
 
cd a*

se la puse para q entre a Archivos de Programas,
xq yo quiero seleccionar la segunda subcarpeta q empiesa con la a en archivos de programa,
eso de la linea cd a* no tiene nada q ve supongo.

salu2
En línea

Theteam
mucha observacion y poco razonamiento llevan a la verdad
Colaborador
*****
Desconectado Desconectado

Mensajes: 432



Ver Perfil
« Respuesta #19 en: Marzo 06, 2006, 10:56:38 »

el problema es que siempre entra en la ultima carpeta, ni en la primera ni en la segunda, en la ultima.
el problema es que el comando for sobreescribe la variable, con lo cual siempre va a ser la ultima la que abra.
la solucion: leer el tema que dice comando for, hace unos dias atras. ahi iobh dice como hacerlo, y ademas lo explica para los que no entendieron Grin (como yo)
en este caso, para seleccionar una carpeta lo unico que hay que cambiar es el nombre de la variable. si queremos la primera la variable es 1, si queremos la segunda 2, y asi sucesivamente
En línea



Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
iobh
Magic Flames
Colaborador
*****
Desconectado Desconectado

Mensajes: 693


Odi Profanum Vulgus et Arceo


Ver Perfil
« Respuesta #20 en: Marzo 06, 2006, 01:36:16 »

ya, tengo tu respuesta, al fin XD

te dejo un codigo
IF %DrakoX%==No_Entiendo echo iobh te responde
IF %DrakoX%==Entiendo echo bien

XD

aqui esta el codigo

#####################################

cd a*
dir /b /a:d > file.tst
for /f "skip=2" %%a in (file.tst) do call :proceso %%a
more file.tst
echo %a%
del *.tst
pause
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[ETC]::
::[y siempre termina con exit]::
exit

:proceso
IF exist log.tst ( goto :EOF )
echo bachu > log.tst
set a=%1

#####################################

Salu2
exit
En línea

"No entiendes realmente algo a menos que seas capaz de explicarselo a tu abuela."

-Albert Einstein

DrakoX
Habitual
*****
Desconectado Desconectado

Mensajes: 365


favor@depreguntar.com
Ver Perfil
« Respuesta #21 en: Marzo 06, 2006, 04:40:16 »

pero no entiendo,
con este code, no entramos en ninguna carpeta.

salu2
En línea

iobh
Magic Flames
Colaborador
*****
Desconectado Desconectado

Mensajes: 693


Odi Profanum Vulgus et Arceo


Ver Perfil
« Respuesta #22 en: Marzo 06, 2006, 05:33:55 »

Te lo entrego en bandeja de oro

cd a*
dir /b /a:d > file.tst
for /f "skip=2" %%a in (file.tst) do call :proceso %%a
cd %a%
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[RESTO DE TU CODIGO]::
::[ETC]::
::[y siempre termina con exit]::
exit

:proceso
IF exist log.tst ( goto :EOF )
echo bachu > log.tst
set a=%1


AHORA SI??
En línea

"No entiendes realmente algo a menos que seas capaz de explicarselo a tu abuela."

-Albert Einstein

DrakoX
Habitual
*****
Desconectado Desconectado

Mensajes: 365


favor@depreguntar.com
Ver Perfil
« Respuesta #23 en: Marzo 07, 2006, 12:20:37 »

Bueno,
ahora la pruebo y te digo si funciona, o hace lo q pretengo,
desde ya muchas gracias,
en el kso de q funcione,
codeo un poco, y les dejo un code,
q talvez les sea de mucha utilidad en virus o worms.

salu2
En línea

DrakoX
Habitual
*****
Desconectado Desconectado

Mensajes: 365


favor@depreguntar.com
Ver Perfil
« Respuesta #24 en: Marzo 07, 2006, 01:02:58 »

mm... no me anda jeje,
hay problemas y eso q solo le agregue 2 lineas de code para probarlo.
este fue el code q use



cd c:\ ------------> agregue esto

cd a*
dir /b /a:d > file.tst
for /f "skip=2" %%a in (file.tst) do call :proceso %%a
cd %a%

pause ------------> agregue esto

exit

:proceso
IF exist log.tst ( goto :EOF )
echo bachu > log.tst
set a=%1


haber si me dices q esta pasando.

salu2 y gracias
En línea

Páginas: [1] 2 Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación  |  Batch (Moderadores: Espectro Infernal, |Shadow|)  |  Tema: Hay alguna forma de... « anterior próximo »
Ir a:  


Ranking-Hits
Powered by SMF 1.1.7 | SMF © 2006-2007, Simple Machines LLC