elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Sistemas Operativos
| |-+  Windows (Moderador: Randomize)
| | |-+  Solucionar y evitar el error de "Ruta demasiado larga" en Windows
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 [3] 4 5 Ir Abajo Respuesta Imprimir
Autor Tema: Solucionar y evitar el error de "Ruta demasiado larga" en Windows  (Leído 127,792 veces)
RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: Solucionar y evitar el error de "Ruta demasiado larga" en Windows
« Respuesta #20 en: 2 Marzo 2011, 17:02 pm »

no se si será posible, pero si gankutsuo le añade algún parametro, mira, algo asi quedaría, no?

Código:
@echo off
dir.exe c:\ > lista.txt & type.txt & del /q lista.txt
pause >nul
exit

animo!
Bueno, como verás yo soy más de GNU/Linux y me parecio interesante hacer un Script de estos, entiendo un poco el comando pero la verdad no lo entiendo del todo veo que guarda la salida del programa en lista.txt y type.txt pero no veo para que es el resto.

Saludos


En línea

SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Solucionar y evitar el error de "Ruta demasiado larga" en Windows
« Respuesta #21 en: 2 Marzo 2011, 17:05 pm »

es como kedaría tu programa mas o menos si se ejecuta desde un .bat xD

lo guarda en lista.txt, luego se muestra la lista.txt, y luego se borra con "del"

pause es para pausar el batch, porque sino se cerraría.


En línea

No he vuelto, solo estoy de paso.
RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: Solucionar y evitar el error de "Ruta demasiado larga" en Windows
« Respuesta #22 en: 2 Marzo 2011, 17:20 pm »

Bueno el script que guarda las rutas en un archivo de texto sin preguntar nada es este.
Código
  1. require 'find'
  2.  
  3. def dirComp(dir)
  4. fileName = "C:" + "\\list.txt"
  5. File.open fileName, 'w'
  6. counter = 0
  7. Dir.chdir(dir)
  8. puts dir
  9. Find.find(dir) do |path|
  10. if(path.to_s.length > 256)
  11. print "#{path} ... ||ERROR: Path mayor a 255 caracteres||\n"
  12. File.open fileName, 'a+' do |file|
  13. file.write "#{path.gsub("/", "\\")}\n"
  14. counter = counter + 1
  15. end
  16. else puts "#{path} ... |OK|"
  17. end
  18. end
  19. if(counter == 0) then
  20. print "No se encontraron rutas incorrectas! ;) \n"
  21. else print "Se encontraron #{counter} rutas incorrectas, y fueron guardadas en #{fileName.gsub("/", "\\")} =(\n"
  22. end
  23. end
  24.  
  25. def cutPath(path)
  26. index = -1
  27. tmpVar = 0
  28. while (tmpVar != 1) do
  29. if (path[index].chr == "/" or path[index].chr == "\\" ) then
  30. finalIndex = path.length - index.abs
  31. oldName = path[0, (finalIndex + 1)]
  32. tmpVar = 1
  33. else
  34. index = index - 1
  35. end
  36. end
  37. return oldName
  38. end
  39.  
  40. print "Escriba el path de un directorio: "
  41. path = gets.chomp.to_s
  42. dirComp(path)
  43.  

En estos momentos me encuentro en Debian..... así que ya voy para Windows a crear el ejecutable, permanece pendiente que cuandotenga el exe edito este msg y lo pongo.

Saludos

-----
EDIT
-----

Listo, ya está hecho!... aquí dejo el nuevo exe: http://www.mediafire.com/?lhae2w358jx6zw9 (es el mismo que el que esta más abajito =))

Saludos
« Última modificación: 2 Marzo 2011, 18:48 pm por gankutsuo » En línea

rconde79

Desconectado Desconectado

Mensajes: 56


Ver Perfil
Re: Solucionar y evitar el error de "Ruta demasiado larga" en Windows
« Respuesta #23 en: 2 Marzo 2011, 17:36 pm »

Gracias amigo.

Déjame decirte que da gusto encontrar gente como tú, ayuda totalmente desinteresada.

Lo veo poco probable porque como verás tengo nivel básico, pero si necesitas cualquier cosa sólo dilo.

Gracias y un saludo!
En línea

rconde79

Desconectado Desconectado

Mensajes: 56


Ver Perfil
Re: Solucionar y evitar el error de "Ruta demasiado larga" en Windows
« Respuesta #24 en: 2 Marzo 2011, 17:56 pm »

Hola de nuevo.

He probado el programa en mi C: un par de veces, y me da el resultado de que ha encontrado 18 rutas incorrectas y las ha guardado en list.txt. Sin embargo, en el archivo de texto sólo se encuentra una.

¿Puede ser que tenga algún pequeño fallo el programa o soy yo que lo estoy utilizando mal?
En línea

RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: Solucionar y evitar el error de "Ruta demasiado larga" en Windows
« Respuesta #25 en: 2 Marzo 2011, 17:57 pm »

Ahhh jajaja no es ningun falló es el parametro "w" que reescribe el archivo cada vez que encuentra una ruta!! jajaja no me habia fijado en eso. Gracias por reportarlo.

Corrigiendo...
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Solucionar y evitar el error de "Ruta demasiado larga" en Windows
« Respuesta #26 en: 2 Marzo 2011, 17:58 pm »

Bueno, la solución de gankutsuo es mucho más completa, pero dejo este otro por si a alguien le sirve de algo, a mi me llevó 3 minutos modificar un script anterior :xD

Código
  1. Set objfso = createobject("scripting.filesystemobject")
  2. Set IDir = objfso.getfolder(wscript.arguments(0))
  3. ListDirs(IDir)
  4.  
  5. Function ListDirs(IFol)
  6. if len(IFol.path)>256 then wscript.echo IFol.path
  7. Set SubsIFol = IFol.subfolders
  8.  
  9. On error resume next
  10. For each SF in SubsIFol
  11. ListDirs(SF)
  12. Next
  13. End Function

Es un vbscript, así que se copia en un notepad y se guarda con extensión vbs

Luego se ejecuta desde línea de comandos pasando como parámetro la ruta de la carpeta.
Código
  1. C:\>cscript /nologo elscript.vbs C:
Y si quieres exportarlo a un archivo lo haces simplemente redireccionando
Código
  1. C:\>cscript /nologo elscript.vbs C: > log.txt

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: Solucionar y evitar el error de "Ruta demasiado larga" en Windows
« Respuesta #27 en: 2 Marzo 2011, 18:02 pm »

Bueno, la solución de gankutsuo es mucho más completa, pero dejo este otro por si a alguien le sirve de algo, a mi me llevó 3 minutos modificar un script anterior :xD

Código
  1. Set objfso = createobject("scripting.filesystemobject")
  2. Set IDir = objfso.getfolder(wscript.arguments(0))
  3. ListDirs(IDir)
  4.  
  5. Function ListDirs(IFol)
  6. if len(IFol.path)>256 then wscript.echo IFol.path
  7. Set SubsIFol = IFol.subfolders
  8.  
  9. On error resume next
  10. For each SF in SubsIFol
  11. ListDirs(SF)
  12. Next
  13. End Function

Es un vbscript, así que se copia en un notepad y se guarda con extensión vbs

Luego se ejecuta desde línea de comandos pasando como parámetro la ruta de la carpeta.
Código
  1. C:\>cscript /nologo elscript.vbs C:
Y si quieres exportarlo a un archivo lo haces simplemente redireccionando
Código
  1. C:\>cscript /nologo elscript.vbs C: > log.txt

Saludos
Jeje graciaspor el aporte, también es una gran solución! y me alegra que la hayas puesto! despues de todo en la variedad está lo bueno eh!
En línea

SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Solucionar y evitar el error de "Ruta demasiado larga" en Windows
« Respuesta #28 en: 2 Marzo 2011, 18:12 pm »

Bueno, la solución de gankutsuo es mucho más completa, pero dejo este otro por si a alguien le sirve de algo, a mi me llevó 3 minutos modificar un script anterior :xD

Código
  1. Set objfso = createobject("scripting.filesystemobject")
  2. Set IDir = objfso.getfolder(wscript.arguments(0))
  3. ListDirs(IDir)
  4.  
  5. Function ListDirs(IFol)
  6. if len(IFol.path)>256 then wscript.echo IFol.path
  7. Set SubsIFol = IFol.subfolders
  8.  
  9. On error resume next
  10. For each SF in SubsIFol
  11. ListDirs(SF)
  12. Next
  13. End Function

Es un vbscript, así que se copia en un notepad y se guarda con extensión vbs

Luego se ejecuta desde línea de comandos pasando como parámetro la ruta de la carpeta.
Código
  1. C:\>cscript /nologo elscript.vbs C:
Y si quieres exportarlo a un archivo lo haces simplemente redireccionando
Código
  1. C:\>cscript /nologo elscript.vbs C: > log.txt

Saludos

Puto Novlucker!!!   y con perdón he!! pero siempre me sorprendes con tus vbs, casate conmigo xDD sabes que amo tus conocimientos no? ajjaja

Gracias a los 2!

(esperando la correción yo tambien ^^)
En línea

No he vuelto, solo estoy de paso.
RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: Solucionar y evitar el error de "Ruta demasiado larga" en Windows
« Respuesta #29 en: 2 Marzo 2011, 18:28 pm »

Listo ya está corregido: http://www.mediafire.com/?lhae2w358jx6zw9
« Última modificación: 2 Marzo 2011, 18:48 pm por gankutsuo » En línea

Páginas: 1 2 [3] 4 5 Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines