Aquí pueden comentar todo lo que quieran, sus dudas, avances o soluciones acerca del siguiente reto:
Reto Nº 3
Nombre: It's a dir? (Elektro H@cker)
Dificultad: 2/10
Objetivo: Comprueba todos los archivos de un directorio, Verifica si son un directorio o un archivo, Y muestra la verificación al lado del nombre del archivo/directorio.
Indicaciones: Debe comprobar directorios y archivos.
Pistas: Se puede realizar con un solo comando.
Ejemplo:
(http://img14.imageshack.us/img14/4025/prtscrcapturedk.jpg)
Solución: Pedir por mensaje privado
Ya he visto la solución, yo por mi parte voy a buscar alguna manera alternativa de pasar el reto (aunque obviamente sera mas larga y lenta) si no no tiene gracia xD
puede ser cualquier directorio o tiene que ser uno espesificado antes?
Quien es el que ha podido solucionar el reto?
Hay?
(http://img534.imageshack.us/img534/9847/programazc.jpg) (http://imageshack.us/photo/my-images/534/programazc.jpg/)
Uploaded with ImageShack.us (http://imageshack.us)
mirare si puedo hacerlo
Cita de: juan196518 en 5 Mayo 2012, 21:39 PM
puede ser cualquier directorio o tiene que ser uno espesificado antes?
Hombre, si funciona con un directorio deberia funcionar con cualquier otro, la idea es que funcione con el
DIR que el usuario quiera :P
Cita de: juan196518 en 5 Mayo 2012, 23:41 PM
Hay?
Demasiados datos! solo pido que se muestre la comprobacion y el nombre del archivo/carpeta, Si consigues eliminar la fecha, la hora, y el tamaño, Para que solo se muestre así lo daré por válido, sino no tiene gracia :P:
< DIR > nombre...
nombre....
< DIR > nombre...
Salu2
Logre quitar fecha hora y tamaño pero no se como hacer lo de la comprobacion igual cuenta??
@echo off
dir /B /O:n C:\Users\Gustavo\Desktop\PhotoshopPortable
pause
/B es para que no salga la fecha de creacion, hora de creacion y Tamaño
/O:n es para que ordene los archivos alfabeticamente
;-)
(http://img72.imageshack.us/img72/5281/reto4.jpg) (http://imageshack.us/photo/my-images/72/reto4.jpg/)
EleKtro hay?
Cita de: juan196518 en 6 Mayo 2012, 05:50 AM
Logre quitar fecha hora y tamaño pero no se como hacer lo de la comprobacion igual cuenta??
EleKtro hay?
Lo siento pero no me sirve amigo, Está mostrando tanto archivos como directorios, Bien, Pero falta la comprobación que indique los que son archivos, y los que son carpetas ._.
Me da igual si se indica como en mi ejemplo (True, false) o ("Si" "NO") o ("1" "0") o ("Archivo, "Directorio"), Pero hay que indicarlo xD.
Un saludo!
Ok haora trato si lo logro publico
elektro me pasas la solucion por mp plis
Cita de: zambita en 6 Mayo 2012, 06:46 AM
elektro me pasas la solucion por mp plis
Listo :)
Como dije se puede hacer con un solo comando xD
Salu2
Hora que me doy cuenta tienes razon no es dir.
@echo off
Set "Ruta=%CD%"
..........................
Pause
::) Elektro porfavor decime que esta esta bien xDDD
(http://img543.imageshack.us/img543/7734/alfinx.jpg) (http://imageshack.us/photo/my-images/543/alfinx.jpg/)
Cita de: juan196518 en 6 Mayo 2012, 07:14 AM
Hora que me doy cuenta tienes razon no es dir.
::) Elektro porfavor decime que esta esta bien xDDD
Te edito el mensaje porque esa parte la has copiado del todo :/... Se trata de aprender pero bueno, The winner is you! xD
Salu2
::)
Si tenemos la solucion despues te la pasamos igal no??
Alguien miro tu solución :silbar: xD
Cita de: puntoinfinito en 6 Mayo 2012, 12:08 PM
*****, creo que le tendría que haber enviado un MP a Elektro xD...
Joder,
puntoinfinito, Al menos ten el detalle de borrar la tabulación de la solución original !!
Si copiais no aprendeis nada... hallá vosotros :-/
1 point for you!
EDITO: voy a subir las soluciones con contraseña, ale xD, a ver kien es el listo que hace el reto nº 10 (dentro d poco posteo) :P
Salu2
no sabia la existencia de este comando forfiles
este verano aver si aparte de ahcking puedo ponerme con scripts
Cita de: EleKtro H@cker en 6 Mayo 2012, 12:12 PM
EDITO: voy a subir las soluciones con contraseña, ale xD, a ver kien es el listo que hace el reto nº 10 (dentro d poco posteo) :P
Salu2
Ami se me da mejor eso de romper programas con password si lo cuelgas con contraseña mejor aprendere el doble :D
PD:Modifique el bat para k solo mostrara las carpetas o archivos era para provar un poco como iva el comando forfiles
@Echo OFF
REM Ahora si que si e.e
title Reto - It's A dir?
color e
Set "Dir=%CD%"
Echo Directorio: %Dir%
echo MOSTRAR ARCHIVOS 1
ECHO MOSTRAR CARPETAS 2
set /P m=::
if %m%==1 goto a
if %m%==2 goto b
:a
forfiles /P "%dir%" /C "Cmd /C if "@isdir"==TRUE echo CARPETAS @file"
goto c
:b
forfiles /P "%dir%" /C "Cmd /C if "@isdir"==FALSE echo ARCHIVOS @file"
:c
pause >NUL
Exit
Cita de: Stakewinner00 en 6 Mayo 2012, 12:28 PM
no sabia la existencia de este comando forfiles
Esa era la intención de este reto, aprender ese comando :P
Aqui esta la mia, mucho mas larga y lenta que con forfiles pero bue..como había visto tu solución no quise hacerlo igual..
@echo off
For /F %%i in ('dir /b /A:D') do (echo 1 %%i >> dire.tmp)
For /F %%e in ('dir /B /A:A') do (echo 0 %%e >> archi.tmp)
type dire.tmp >> archi.tmp | sort
For /F "tokens=1,2" %%f in (archi.tmp) do (
if %%f EQU 1 echo [True] %%g
if %%f EQU 0 echo [False] %%g)
del archi.tmp dire.tmp
pause
Tienes razon xd...
Uo, me he quedado :o, en ningún tutorial ni manual básico de Batch hablan de "Forfiles" (al menos los que yo he visitado)...
Encima ni que busques por el cmd no hay ni una pista de este comando.
Modo animado ON.
Forfiles solo viene en windows7 si tienes xp no te va a funcionar..
Ou, que fail.. deberia estar todo en todo, para no crear problemas, siempre igual :/
Cita de: juan196518 en 6 Mayo 2012, 07:14 AM
Hora que me doy cuenta tienes razon no es dir.
No te desanimes juan19658 despues de todo si es DIR
Se que ya ha pasado tiempo sin embargo quisiera contribuir al notar que la respuesta no esta expuesta aqui ;D
(http://photos3.pix.ie/03/BD/03BD1E35C9604BBBA903643AE27E52E8-0000351152-0002911326-00800L-6B20FA5FD9A74376A42A598749893496.png)
La solucion es relativamente sencilla:
DIR /AD /B
No estoy en Windows, pero algo así debería funcionar, bueno, quizás :p
cd dir && (
echo Es dir
) || (
echo No es un dir...
)
Saludos.
Cita de: Leo Gutiérrez. en 30 Junio 2012, 19:58 PM
No estoy en Windows, pero algo así debería funcionar, bueno, quizás :p
cd dir && (
echo Es dir
) || (
echo No es un dir...
)
Saludos.
corrígeme si entiendo mal tu code:
cd dir && ( //cd=acceder a dir=carpeta llamada dir &&=si se cumple
echo Es dir //escribir "es dir"
) || ( //sino
echo No es un dir //escribir "No es un dir"
sin embargo la respuesta en caso de no ser un directorio sera "El sistema no puede hallar la ruta especificada" y obviamente escribiría "No es dir"
Aun asi es una solución ;) quedaria aun mejor si tan solo agregaras un CLS que borre la respuesta de error del comando CD así:
cd dir && (
echo Es dir
) || (
cls
echo No es un dir...
)
el único inconveniente es que solo evaluaría una carpeta llamada dir :-\ y creo que el reto es reconocer solo los directorios contenidos en un lugar especifico. Por tanto insisto que la solución que plantee es mas acertada sin ánimos de crear polémica ni nada ;D
Sí, al uso de && y || en batch y en algunos lenguajes script se le llama ejecución condicional, podrías buscar un post que escribí sobre ello.
cd dir 2> nul && (
echo Es dir.
) || (
echo No es dir.
)
Otra sería usar el comando pushd y popd para regresarse luego que ingreses al directorio.
A ver si funciona esto...
pushd dir 2> nul && (
echo Es dir
popd
) || (
echo No es dir.
)
Pues aquí mi solución:
@Echo Off
set/p "dpath=Path >> "
for /f "tokens=*" %%_ in ('dir /b "%dpath%"') do (
1>nul 2>&1, (dir /b /a:d "%dpath%" | findstr /r /i "^%%_$") && (
echo: TRUE %%_
) || (
echo: FALSE %%_
)
)
pause 1>nul & exit
Con fomato similar a la imagen de ejemplo.
@echo off
forfiles /p %1 /c "cmd /c echo @file @isdir"
pause 1>nul
Asumiendo que se le proporciona la ruta por parámetro.
Tengo que averiguar como hacer para que los nombres aparezcan sin dobles comillas.
Happy solving!
@echo off
echo Con Comillas: %1
echo Sin Comillas: %~1
C:\Documents and Settings\Administrador\tempcurso>astring "parametro de varias letras"
Con Comillas: "parametro de varias letras"
Sin Comillas: parametro de varias letras
:http://foro.elhacker.net/scripting/programacion_batch_avanzada_nuevo-t132924.0.html