[Batch] mi primer aporte: Ordenar escritorios

Iniciado por moikano→@, 26 Octubre 2010, 15:19 PM

0 Miembros y 1 Visitante están viendo este tema.

xassiz~

Código (dos) [Seleccionar]

if exist "%userprofile%\Escritorio" (set "ruta=%userprofile\Escritorio") else (
    if exist "%userprofile%\Desktop" (set "ruta=%userprofile%\Desktop")
)

Me refería a algo así :-X

moikano→@

#11
Ah ok! XD
Ahora lo cojí. Pues entonces debería guardar toda la ruta en una variable y llamarla luego cuando la necesite. no?
Tipo esto:
Código (dos) [Seleccionar]
if exist "%userprofile%\Escritorio" (set "ruta=%userprofile\Escritorio") else (
   if exist "%userprofile%\Desktop" (set "ruta=%userprofile%\Desktop")
)
for %%a in ("pdf") do (

   xcopy /i /q "%ruta%\*.%%~a" "%ruta%\archivos_pdf"

   del /q "%ruta%\*.%%~a"

Es correcto?


moikano→@

#13
Vale ya lo e retocado. el codigo quedaria sin el else.

FerJGS

EL código es demasiado extenso. Lo primero, no ponags un salto de líena entre cda comando:

echo.

echo.

Pon directamente

echo.
echo.

Y en lugar de poner una línea de comandos para cada tipo de archivo (que hay miles), pon un bucle que vaya probando combinaciones de tres letras

aaa, aab, aac, hasta zzz.

Defines la variable de for (las tres letras) como el nombre de la variable que usarás para poner nombre a la carpet,a te ahorrarás muchas líneas, pero para no crear 20 mil carpetas, usa if exist, para que solo cree las carpetas si hay archivos con dicha extensión.

moikano→@

Pero silo pusiera así no quedaría ordenado. Ya que la gracia está en que los archivos con la extensión que toca queden dentro de su carpeta correspondiente. por ejemplo:
Archivos_PDF-----< .pdf
Si le pongo lo de la combinatoria de letras no se cual será cual, además de que muchísimas combinaciones no las conozco y no se a que carpeta irían.No se si me explico.
Pero gracias de todas formas, estudiare esa función de "FOR" parece interesante.
Y sobre lo de las lineas si, las lineas vacías sobran. =)

FerJGS

No, creo que el que no se ah explicado he sido yo.


Podrías hacer algo como:

"siguiente combinación: PDF"

Si hay archivos .PDF

Crear carpeta   "PDF"

Copiar archivos ".PDF" a carpeta "PDF".

Y si no hay  archivos PDF, siguiente combinación. Algo así.

No me apetece pensar demasiado pero sería algo como crear un archivo TXT con las 25 letras básicas del alfabeto occidental y que for probase con una cada vez.

A A A
A A B
A A C
...
A B A
A B B
........
Z Z Z

y con eso pones

If exist *.%a (
MD %a
Copy *.%a %homedrive%/Docume~1/%Username%/Escritorio/%a
)

Algo así.

xassiz~

Pero el no divide por extensión, por ejemplo en Documentos de Texto mete, .txt, .doc, etc.

moikano→@

Exacto Pablomi, aunque no es mala idea FerJGS.
De todas formas creo que es mas humano decir a una carpeta "Archivos de texto" que "RTF" y menos engorroso, si no tendrías una carpeta por cada extensión.

FerJGS

No hombre, pero podrías llamar a la carpeta como te diera la gana.

El ejemplo sería.

Combinación "PDF"
Si entre los archivos a copiar hay alguno "*.pdf"

copiarlo a "C:~ .../Escritorio/Documentos/%1.pdf

Algo así. Se puede hacer así en poco más de diez líneas.