Tengo Problemas!!

Iniciado por TheTitan, 25 Agosto 2007, 01:02 AM

0 Miembros y 3 Visitantes están viendo este tema.

TheTitan

Me estoy creando mi programa bat y resulta que en una de las opciones que coloco me dice que " la ruta es demasiado larga " y averiguo que se acorta colocando asi archivos~1 (abreviado) la ruta... ya ok bien. pero he buscado por medio internet y no sale nada al respecto....porfavor si alguien me puede decir como son las abreviaturas se lo agradeceria mucho!. bueno espero inpaciente su respuesta
de antemano muchas gracias.

PD: alguien sabe como hacer @#%& el IE!!! se me abre derrepente y muestra puras @#$%&...
bueno gracias nuevamente
adios.
TheTitan

GroK

Veras:

La abreviatura se usa de forma que las subcarpetas cuyo nombre exceda 8 caracteres queden tal que asi: Archivos de Programa -> ARCHIV~1

Como ves, se cogen los seis primeros caracteres y se le añade '~1'. Una ruta de ejemplo:

C:\Archivos de Programa\Documents and Settings\Pepe\Blablabla\

Se transformaria en:

C:\ARCHIV~1\DOCUME~1\PEPE\BLABLA~1\

Espero que te sirva. Y en cuanto a lo del IE, lo mas probable es que sea algun tipo de malware. Pasate por el subforo de Seguridad y leete los post con chincheta. ;)

Saludos
"I put on my Hendrix album and my son said 'Dad, who's that?' and i said 'Well son, that's God' "- Robert Plant


TheTitan

 :o. Genial! ya entendi..  muchas gracias por tu respuesta...^^
PD: seguire tu consejo por lo de malware  :-\
gracias
TheTitan

kraszic

#3
Cita de: GroK en 26 Agosto 2007, 04:50 AM
Veras:

La abreviatura se usa de forma que las subcarpetas cuyo nombre exceda 8 caracteres queden tal que asi: Archivos de Programa -> ARCHIV~1

Como ves, se cogen los seis primeros caracteres y se le añade '~1'. Una ruta de ejemplo:

C:\Archivos de Programa\Documents and Settings\Pepe\Blablabla\

Se transformaria en:

C:\ARCHIV~1\DOCUME~1\PEPE\BLABLA~1\

Espero que te sirva. Y en cuanto a lo del IE, lo mas probable es que sea algun tipo de malware. Pasate por el subforo de Seguridad y leete los post con chincheta. ;)

Saludos

a mi esto nunca me ha quedado muy claro por las pegas q hay...

Os pongo unos ejemplos a ver si me los podeis resolver...
C:\Mis documentos\blablablabla.jpg como se abrevia mis documentos cuando hay espacio y excede de 8 letras??? si se trata de abrir un archivo q excede de 8 letras se pondria a continuacion de ~1 .jpg??? Y q pasaria si en esa subcarpeta hubieran dos archivos q las 6 primeras letras son las mismas???como se diferenciarian??
Y tampoco tengo claro como se abreviaria una subcarpeta con un espacio pero q no excede de las 8 letras.
C:\el ese

saludos

PD: Las rutas abreviadas siempre se escriben en mayusculas??

GroK

#4
Jaja siempre le quieren buscar los 3 pies al gato xD

Te comento kraszic:

Cita de: kraszic en 27 Agosto 2007, 15:50 PM
C:\Mis documentos\blablablabla.jpg como se abrevia mis documentos cuando hay espacio y excede de 8 letras??? si se trata de abrir un archivo q excede de 8 letras se pondria a continuacion de ~1 .jpg???

Cuando hay espacios en las rutas antes de dichos 6 caracteres los espacios se suprimen. Asi de facil:

C:\MISDOC~1\BLABLA~1.jpg

Y asi tambien respondo a tu segunda pregunta; a los archivos tambien se le puede aplicar la abreviatura.




Cita de: kraszic en 27 Agosto 2007, 15:50 PMY q pasaria si en esa subcarpeta hubieran dos archivos q las 6 primeras letras son las mismas???como se diferenciarian??

Predecible pregunta :P Igual de predecible es la respuesta:

Suponiendo que en C:\Mis Documentos\ tenemos los archivos blablabla1.jpg, blablabla2.jpg, etc varios asi, pues para referirnos al primero por orden alfabetico haremos:

C:\MISDOC~1\BLABLA~1.jpg

Para el segundo:

C:\MISDOC~1\BLABLA~2.jpg

Etcetera...Como ves, ese inexplicable '~1' sin razon de ser aparente tiene mas sentido de lo que parece a simple vista ;)

Sin embargo en este hipotetico caso he estado probando y parece que no soporta mas de 4 archivos cuyos seis primeros caracteres sean iguales, es decir, hasta BLABLA~4, a partir de ahi con los siguientes me daba error y no podia encontrar el archivo. Para eso no he encontrado solucion, pero espero que no tengas que llegar hasta esos extremos :xD Recuerda que el principal uso de la abreviatura esta es para acortar las rutas cuando estamos trabajando en muchas subcarpetas y la ruta total pueda exceder los 260 caracteres limite con los que puede trabajar Windows; casi siempre con aplicar la abreviatura en una o dos subcarpetas sera suficiente para evitar ese obstaculo y, ciertamente, con los archivos rara vez se aplica, asi que podemos nombrarlos con su nombre y apellidos completos y asi no habra problemas.




Cita de: kraszic en 27 Agosto 2007, 15:50 PM
Y tampoco tengo claro como se abreviaria una subcarpeta con un espacio pero q no excede de las 8 letras.
C:\el ese

Pues simplemente no se abrevia xD Pones:

cd C:\el ese

Y te cambia el directorio sin problema. Recuerda que la abreviatura se aplica SOLO si el directorio/fichero tiene MAS de 8 caracteres.

EDITADO:

Si se puede abreviar (Y, de hecho, en la vieja shell de Windows 9x ([Inicio] +R -> 'command.com') hay que hacerlo de esta forma; si no te dira que el comando contiene demasiados parametros). Se hace igual que para las carpetas de mas de 8 caracteres con espacios: Eliminamos los espacios y añadimos '~1', es decir:

cd C:\ELESE~1




Cita de: kraszic en 27 Agosto 2007, 15:50 PM
PD: Las rutas abreviadas siempre se escriben en mayusculas??

Da lo mismo, si lo escribes en la consola en minusculas, por ejemplo:

cd c:\misdoc~1

En la consola te sale:

C:\MISDOC~1>

Asi que es lo mismo como trabajes, si te es mas comodo con minusculas adelante ;)




Saludos
"I put on my Hendrix album and my son said 'Dad, who's that?' and i said 'Well son, that's God' "- Robert Plant


kraszic

jaja, muchas gracias, menudo post tas currado. :o
Ya me ha quedado todo claro!!

saludos

Asalta_Hacker

Hola a to2!!!!!

Escucha hay una forma mas facil de hacer eso solo tienes k poner el destino entre
comillas dobles por ejemplo:

"C:\Archivos de Programa\....\.....bat"

y ya esta la puedes poner on espacios no pasa nada!


salu2

GroK

@Asalta_Hacker

Por supuesto xD pero recuerda lo primero que preguntaron:

Cita de: TheTitan en 25 Agosto 2007, 01:02 AM
Me estoy creando mi programa bat y resulta que en una de las opciones que coloco me dice que " la ruta es demasiado larga "

En fin, lo que TheTitan buscaba era la manera abreviada de escribir las rutas; esta claro que si sabemos que no van a exceder de ese limite se usan las rutas completas entrecomilladas de toda la vida y andando :D

Saludos

"I put on my Hendrix album and my son said 'Dad, who's that?' and i said 'Well son, that's God' "- Robert Plant


HeavyBoy

Hola gente! Estaba buscando información sobre algo parecido y me he encontrado con este hilo.
Estoy escribiendo un programa en VB NET y tengo que escribir unas rutas de forma abreviada.
El problema es aparece cuando tienes mas de un archivo con los 6 primeros caracteres iguales:
C:\archivo uno.txt -> abreviado es C:\ARCHIV~1.TXT
C:\archivo dos.txt -> abreviado es C:\ARCHIV~2.TXT

es un coñazo buscar archivos con nombres iguales (Aunque se me ocurre una manera ahora mismo)
Queria saber si alguiente tiene idea de como obtener una ruta abreviada con algun objeto o algo.
Por ejemplo

Dim info As FileInfo = new FileInfo("C:\archivo uno.txt")
Dim ruta_abreviada As String = info.getSortPath (Por llamar de alguna manera a esta función)
---------------------------
  -- The HeavyBoy --
---------------------------

GroK

@HeavyBoy

Pues si señor :xD La API GetShortPathName viene al pelo para esto. Te pongo un ejemplo sacado de la API-Guide (Ojo, es para VB 6, para .NET no se como ira la cosa pero imagino que sabras adaptarlo)

Código (vb) [Seleccionar]
Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal lBuffer As Long) As Long

Public Function GetShortPath(strFileName As String) As String
    Dim lngRes As Long, strPath As String
    'Create a buffer
    strPath = String$(165, 0)
    'retrieve the short pathname
    lngRes = GetShortPathName(strFileName, strPath, 164)
    'remove all unnecessary chr$(0)'s
    GetShortPath = Left$(strPath, lngRes)
End Function

Private Sub Form_Load()
    MsgBox GetShortPath("c:\Program Files\")
End Sub


Como ves, la API GetShortPathName tiene 3 parametros, el primero es la ruta completa de la que deseas obtener la ruta corta; el segundo es el buffer que contendra la ruta corta y el tercero es el tamaño de dicho buffer en caracteres

Espero que te sirva, aunque todo esto se salga un poco del scripting en batch :P Saludos
"I put on my Hendrix album and my son said 'Dad, who's that?' and i said 'Well son, that's God' "- Robert Plant