Autor
|
Tema: Solucionar y evitar el error de "Ruta demasiado larga" en Windows (Leído 129,690 veces)
|
RyogiShiki
Desconectado
Mensajes: 745
げんしけん - Hikkikomori FTW!!!
|
no se si será posible, pero si gankutsuo le añade algún parametro, mira, algo asi quedaría, no? @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
Mensajes: 2.505
Crew Dragon
|
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
Mensajes: 745
げんしけん - Hikkikomori FTW!!!
|
Bueno el script que guarda las rutas en un archivo de texto sin preguntar nada es este. require 'find' def dirComp(dir) fileName = "C:" + "\\list.txt" File.open fileName, 'w' counter = 0 Dir.chdir(dir) puts dir Find.find(dir) do |path| if(path.to_s.length > 256) print "#{path} ... ||ERROR: Path mayor a 255 caracteres||\n" File.open fileName, 'a+' do |file| file.write "#{path.gsub("/", "\\")}\n" counter = counter + 1 end else puts "#{path} ... |OK|" end end if(counter == 0) then print "No se encontraron rutas incorrectas! ;) \n" else print "Se encontraron #{counter} rutas incorrectas, y fueron guardadas en #{fileName.gsub("/", "\\")} =(\n" end end def cutPath(path) index = -1 tmpVar = 0 while (tmpVar != 1) do if (path[index].chr == "/" or path[index].chr == "\\" ) then finalIndex = path.length - index.abs oldName = path[0, (finalIndex + 1)] tmpVar = 1 else index = index - 1 end end return oldName end print "Escriba el path de un directorio: " path = gets.chomp.to_s dirComp(path)
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
Mensajes: 56
|
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
Mensajes: 56
|
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
Mensajes: 745
げんしけん - Hikkikomori FTW!!!
|
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
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
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 Set objfso = createobject("scripting.filesystemobject") Set IDir = objfso.getfolder(wscript.arguments(0)) ListDirs(IDir) Function ListDirs(IFol) if len(IFol.path)>256 then wscript.echo IFol.path Set SubsIFol = IFol.subfolders On error resume next For each SF in SubsIFol ListDirs(SF) Next End Function
Es un vbscript, así que se copia en un notepad y se guarda con extensión vbsLuego se ejecuta desde línea de comandos pasando como parámetro la ruta de la carpeta. C:\>cscript /nologo elscript.vbs C:
Y si quieres exportarlo a un archivo lo haces simplemente redireccionando 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
Mensajes: 745
げんしけん - Hikkikomori FTW!!!
|
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 Set objfso = createobject("scripting.filesystemobject") Set IDir = objfso.getfolder(wscript.arguments(0)) ListDirs(IDir) Function ListDirs(IFol) if len(IFol.path)>256 then wscript.echo IFol.path Set SubsIFol = IFol.subfolders On error resume next For each SF in SubsIFol ListDirs(SF) Next End Function
Es un vbscript, así que se copia en un notepad y se guarda con extensión vbsLuego se ejecuta desde línea de comandos pasando como parámetro la ruta de la carpeta. C:\>cscript /nologo elscript.vbs C:
Y si quieres exportarlo a un archivo lo haces simplemente redireccionando 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
Mensajes: 2.505
Crew Dragon
|
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 Set objfso = createobject("scripting.filesystemobject") Set IDir = objfso.getfolder(wscript.arguments(0)) ListDirs(IDir) Function ListDirs(IFol) if len(IFol.path)>256 then wscript.echo IFol.path Set SubsIFol = IFol.subfolders On error resume next For each SF in SubsIFol ListDirs(SF) Next End Function
Es un vbscript, así que se copia en un notepad y se guarda con extensión vbsLuego se ejecuta desde línea de comandos pasando como parámetro la ruta de la carpeta. C:\>cscript /nologo elscript.vbs C:
Y si quieres exportarlo a un archivo lo haces simplemente redireccionando 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.
|
|
|
|
|
|