Listo ya está corregido: http://www.mediafire.com/?lhae2w358jx6zw9
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: Novlucker en 2 Marzo 2011, 17:58 PMJeje 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!
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 anteriorSet 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 vbs
Luego 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 redireccionandoC:\>cscript /nologo elscript.vbs C: > log.txt
Saludos
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)
Cita de: pitoloko en 2 Marzo 2011, 16:56 PMBueno, 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.
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!
Cita de: rconde79 en 2 Marzo 2011, 16:52 PMClaro vamos que no hay bronca! además me ofrecí desde el principio para esto así que no importa, y claro, además es una modificación muy simple... esperame un rato a ver que sale.
Por cierto, otra sugerencia (por favor no me mates)
¿habría alguna forma de que el programa lanzara un archivo de texto con las rutas que ha encontrado erróneas, sin que se parara a preguntar si se quiere renombrar el archivo?
Es para pasarlo a una carpeta grande, olvidarte durante un rato, y después echar un vistazo al documento de texto.
Sólo es una sugerencia que se me ocurre. Repito que me parece fantástico el programa como está.
Saludos!
Cita de: rconde79 en 2 Marzo 2011, 16:46 PM
Buenísimo. Lo he utilizado y funciona a la perfección.
Sí que se podría difundir el programa. yo he buscado por internet y no hay ninguna solución a este fallo de windows.
Enhorabuena otra vez!
PD: manda wevos que hayamos llegado a la luna hace medio siglo y todavía no se puedan escribir rutas de más de 256 caracteres..
Cita de: Novlucker en 2 Marzo 2011, 15:41 PM
Yo creo que hay que intentar valorar todo aporte
Yo pienso que una cosa es dar "soporte" para los Windows desatendidos que vaya a saber quién lo modificó, y otra cosa es que cada uno pueda crear su propio desatendido en caso de que le sea necesario. Incluso con un objetivo un tanto similar es que Microsoft pone a disposición de todos el WAIK
Saludos
C:
dir.exe
Escriba el path de un directorio:
||ERROR: Path mayor a 255 caracteres||
Desea renombrar el archivo (s/n):
Escriba el nuevo nombre para el archivo:
... | OK |
require 'find'
def dirComp(dir)
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"
print "Desea renombrar el archivo (s/n): "
op = gets.chomp.to_s
if (op == 's')
print "Escribe el nuevo nombre para el archivo: "
name = gets.chomp.to_s
oldName = cutPath(path)
newName = oldName + name
File.rename(path.gsub("/", "\\"), newName.gsub("/", "\\"))
else next
end
else puts "#{path} ... |OK|"
end
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)