2011-02-11 15:29:57 +0000 2011-02-11 15:29:57 +0000
89
89

Copiar la ruta de red UNC (no la letra de la unidad) para las rutas en unidades mapeadas desde el Explorador de Windows

Con frecuencia deseo compartir las rutas de red de Windows a los archivos con otras personas de mi equipo a través del correo electrónico o el chat. Tenemos muchas unidades mapeadas aquí, tanto las que hemos creado nosotros mismos como las que han creado nuestros jefes de TI. Lo que me gustaría poder hacer es copiar la ruta real completa (no la letra de la unidad) del Explorador de Windows para enviarla a la gente.

Ejemplo: Tengo un archivo en mi disco “Q:”, “Cartman Users”, y quiero enviar un enlace al archivo “foo.doc” a mis compañeros de trabajo. Cuando copio la ruta del archivo (shift+clic derecho, “copiar como ruta”) obtiene el nombre del archivo “Q:\foo.doc” en el portapapeles. Esto no es útil para los demás, que necesitarían ver “Cartman-emueller-foo.doc” para poder consumir el enlace.

En el Explorador conoce claramente la ruta completa - en la barra de direcciones veo “Computer -> emueller (|cartman-usuarios) (Q:) ->”. ¿Hay alguna manera de decir “hey hombre copia esa ruta como un texto con el emueller de Cartman, no con la Q: en él?”

Sé que podría configurar las ubicaciones de red mapeadas en lugar de las unidades mapeadas para las que he configurado personalmente y evitar este problema, pero la mayoría de las unidades mapeadas como la parte de “usuarios” vienen de nuestra política de TI corporativa y no pueden ser anuladas. Podría hacer una ubicación de red separada y luego ignorar mi unidad Q: pero eso es inconveniente (y lo hacen para poder mover las cuentas a través de los servidores). Seguro que mi ruta de correo electrónico podría romperse eventualmente porque estoy perdiendo la letra de la unidad de disco indirecto, pero eso está bien para mí.

Respuestas (17)

49
49
49
2012-04-19 17:19:19 +0000

Tal vez un largo camino alrededor pero abrir una ventana de cmd. Entonces haz net use > filename

Luego abre el nombre del archivo y puedes obtener la ruta: Ex:

C:\Users\me\net use > drives.txt

Apertura drives.txt

New connections will be remembered.
Status Local Remote Network
-------------------------------------------------------------------------------
             H: \server\c\proj\net Microsoft Windows Network

Puedes copiar \server\c\prog\net del archivo para tu uso.

Espero que esto ayude.

47
47
47
2012-08-24 23:20:11 +0000

Tuve exactamente el mismo problema – no todos tenían las mismas unidades mapeadas como yo, o mapeadas con las mismas letras.

Después de mucho buscar encontré una extensión de menú contextual llamada Path Copy Copy en GitHub https://pathcopycopy.github.io/ ) que es una versión extendida de una extensión similar, más antigua (llamada Pathcopy) tiene bastantes opciones para copiar rutas como texto, incluyendo una para las rutas UNC – un ejemplo de las opciones disponibles se muestra a continuación:

También puedes elegir mostrar sólo una o dos líneas en el menú contextual base, por ejemplo puedes tener dos líneas, Copiar camino largo, y Copiar camino largo UNC. Es genial para enviar por correo electrónico a los usuarios de su empresa que tienen acceso a una ruta de red, y si tienen el mismo mapeo de red que usted, puede elegir el primero, de lo contrario puede usar el segundo.

Actualizar : A partir de la versión 12.0, un nuevo instalador “portátil” está disponible en el sitio anterior, que se instala sólo para el usuario actual en la carpeta AppData\Local. No lo he intentado, pero podría ser una solución para aquellos que tienen prohibido instalar normalmente.

39
39
39
2012-07-26 21:41:45 +0000

Update: El enfoque de CoolCol es incluso más fácil que el mío. Sube esa respuesta.

Esta es la solución que uso cuando envío rutas de red mapeadas a través de Outlook:

  1. En el Explorador de Windows, mantén pulsado el botón shift, r-clic en el archivo, y selecciona “ Copiar como ruta”.
  2. 2. Inserte un hipervínculo en el correo electrónico y péguelo en el campo de dirección del cuadro de diálogo del hipervínculo. (Atajo: ctrl-K ctrl-V + OK). En este punto, el enlace mostrará la letra de la unidad mapeada como la raíz (Q:\foo.doc).
  3. Ahora, r-clic y seleccione “ Editar hipervínculo…” notará que el campo de dirección ha sido traducido de nuevo a la ruta UNC completa (\cartman\users\emueller\foo.doc). Con el ratón en el campo de dirección, pulsa ctrl-A y ctrl-C para copiar la ruta completa a tu portapapeles, y luego mueve el cursor al campo superior (“Texto a mostrar:”) pulsa ctrl-A y ctrl-V para mostrarlo correctamente en tu correo electrónico.
32
32
32
2015-06-01 08:49:58 +0000

(https://superuser.com/a/839640/27017) fue básicamente acertado, pero para dar un paso más,

  1. DERECHA-DERRIBA la carpeta del Explorador de Windows, en el cuerpo de su nuevo correo electrónico,
  2. luego seleccione ‘Crear hipervínculo aquí’.
20
20
20
2012-08-24 20:23:12 +0000

Acabo de tener la necesidad de lo mismo que OP está preguntando y después de buscar en Google y leer las respuestas, ninguno de ellos proporcionó lo que creo que OP y yo estamos buscando.

El problema aquí es que uno puede mapear una red compartida a Drive Y mientras que alguien más en la organización puede tener la misma red compartida mapeada como Drive X; por lo tanto, enviar un enlace como Y:\mydirectory puede no funcionar para nadie más que para mí.

Como explica la OP, el Explorador sí muestra la ruta real en la barra del Explorador, pero no se puede copiar (escribir es tedioso y propenso a errores, por lo que no es una opción) aunque elija copy as path desde el menú contextual:

Así que la solución que se me ocurrió (copiando el código de otra persona) fue un pequeño programa C# que puede llamar desde un menú contextual en el Explorador y que le permitirá traducir la letra de unidad mapeada al UNC path real.

Aquí está el código:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Utils
{
    //This is the only piece of code I wrote
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            //Takes the parameter from the command line. Since this will
            //be called from the context menu, the context menu will pass it 
            //via %1 (see registry instructions below)
            if (args.Length == 1)
            {               
                Clipboard.SetText(Pathing.GetUNCPath(args[0]));
            }
            else
            {   
               //This is so you can assign a shortcut to the program and be able to
               //Call it pressing the shortcut you assign. The program will take
               //whatever string is in the Clipboard and convert it to the UNC path
               //For example, you can do "Copy as Path" and then press the shortcut you  
               //assigned to this program. You can then press ctrl-v and it will
               //contain the UNC path
                Clipboard.SetText(Pathing.GetUNCPath(Clipboard.GetText()));           
            }
        }
    }
}

Y aquí está la definición de la clase Pathing (intentaré encontrar la fuente real ya que no puedo recordar dónde la encontré):

public static class Pathing
{
    [DllImport("mpr.dll", CharSet = CharSet.Unicode, SetLastError = true)]
    public static extern int WNetGetConnection(
        [MarshalAs(UnmanagedType.LPTStr)] string localName,
        [MarshalAs(UnmanagedType.LPTStr)] StringBuilder remoteName,
        ref int length);
    /// <summary>
    /// Given a path, returns the UNC path or the original. (No exceptions
    /// are raised by this function directly). For example, "P:008-02-29"
    /// might return: "\networkserver\Shares\Photos008-02-09"
    /// </summary>
    /// <param name="originalPath">The path to convert to a UNC Path</param>
    /// <returns>A UNC path. If a network drive letter is specified, the
    /// drive letter is converted to a UNC or network path. If the 
    /// originalPath cannot be converted, it is returned unchanged.</returns>
    public static string GetUNCPath(string originalPath)
    {
        StringBuilder sb = new StringBuilder(512);
        int size = sb.Capacity;

        // look for the {LETTER}: combination ...
        if (originalPath.Length > 2 && originalPath[1] == ':')
        {
            // don't use char.IsLetter here - as that can be misleading
            // the only valid drive letters are a-z && A-Z.
            char c = originalPath[0];
            if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
            {
                int error = WNetGetConnection(originalPath.Substring(0, 2),
                    sb, ref size);
                if (error == 0)
                {
                    DirectoryInfo dir = new DirectoryInfo(originalPath);

                    string path = Path.GetFullPath(originalPath)
                        .Substring(Path.GetPathRoot(originalPath).Length);
                    return Path.Combine(sb.ToString().TrimEnd(), path);
                }
            }
        }

        return originalPath;
    }
}

Construyes el programa y pones el ejecutable en algún lugar de tu PC, digamos por ejemplo, en c:\Utils

Ahora añades una opción de menú contextual en el Explorador, así:

Registrar y luego:

HKEY_CLASSES_ROOT\*\Directory\Shell

Right-click Shell --> New Key --> Name: "To UNC Path"
Right-click To UNC Path --> New Key --> Name: command
Right-click Default entry and select `Modify`
Value Data: c:\Utils\Utils.exe "%1"

Ya has terminado. Ahora verás esta opción cuando hagas clic con el botón derecho del ratón en un directorio de una unidad mapeada:

Nota

Puedo proporcionar el ejecutable para que no tengas que hacer la compilación tú mismo. Simplemente déjame una nota aquí.

12
12
12
2013-10-16 12:16:39 +0000

Ejecute el comando cmd.exe net use:

C:\anywhere>net use
New connections will be remembered.
Status Local Remote Network
-------------------------------------------------------------------------------
OK E: \XXXXX-XXX-XXX.whatever.com\d$
                                                Microsoft Windows Network
OK G: \YYYYY-Y-YY01\SAN_INTERNAL\DEPARTMENT
                                                Microsoft Windows Network
OK H: \ZZZZ-Z-ZZ01\Users$\myself
                                                Microsoft Windows Network
OK \AAAAA-AAA-AAAA3\d$ Microsoft Windows Network

(Gracias Jimbo, tu respuesta fue buena pero no breve!)

5
5
5
2011-02-17 12:04:02 +0000

Alguien llamado Shawn Keene proporcionó una solución a esto en el Foro de Windows 7 en el sitio web de Microsoft. Está en una característica llamada Network Place.

  1. Abre el Explorador de Windows.

  2. Haz clic con el botón derecho del ratón en la entrada “Computadora” del panel izquierdo y selecciona “Agregar una ubicación de red”. Haga clic en Siguiente.

  3. Seleccione la opción “Elegir una ubicación de red personalizada” (era la única que se me presentó) y haga clic en Siguiente.

  4. Haga clic en Siguiente. 4. Escriba la ruta UNC deseada y haga clic dos veces en Next. Esto agrega una entrada que aparece en el panel izquierdo del Explorador de Windows debajo de las unidades mapeadas, pero funciona igual que una unidad mapeada y se muestra de esa manera en el diálogo Guardar de las aplicaciones.

  5. En el Explorador de Windows, navegue a través de esa entrada hasta el subdirectorio deseado y haga clic en el área en blanco a la derecha de la visualización de la ruta de las migas de pan en la parte superior de la pantalla del Explorador de Windows y la ruta UNC aparece y está resaltada.

4
4
4
2014-11-13 15:35:34 +0000
  1. Abrir la carpeta.
  2. DERECHO arrastrar un archivo de la carpeta a Microsoft Word.
3
3
3
2013-10-02 19:04:28 +0000

Mantenga pulsada la tecla Shift y haga clic con el botón derecho del ratón en el archivo y seleccione “Copiar como ruta”. Inserte un hipervínculo en el correo electrónico y péguelo en el campo de dirección del cuadro de diálogo del hipervínculo.

Después de crear el hipervínculo en el correo electrónico, ya está listo.

El enlace mostrará la letra de unidad mapeada esto es cierto. Cuando el destinatario o destinatarios hagan clic en el vínculo del correo electrónico, seguirá la ruta UNC tanto si el usuario está asignado como si no.

He probado esto en otras aplicaciones de Office 2010, Excel, Power Point y Word.

2
2
2
2012-09-28 13:42:54 +0000

También puede hacer clic con el botón derecho del ratón en el nombre del directorio en la vista de directorio de la computadora y seleccionar “renombrar”. Esto te dará acceso para copiar la ruta.

1
1
1
2013-10-16 13:33:07 +0000

Guarda esto en tu carpeta “sendto”, la mía está en C:\Documents and Settings\xxxxID\SendTo con un nombre como Copy UNC Filepath.vbs (debe terminar en .vbs) Ahora cuando hagas clic derecho en una carpeta o archivo, copiará la UNC al portapapeles. Nuestra carpeta personal es la unidad F y por lo tanto no convierte ni C: ni F:

'send UNC filepath to clipboard when selected file is input as Send To
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate("about:blank")

myPath=Wscript.Arguments(0)
drive = Left(myPath,2)

if drive = "C:" OR drive = "\" OR drive = "F:" then
    'leave unchanged
else
    Set oWSN = CreateObject("WScript.Network") 
    Set oDrives = oWSN.EnumNetworkDrives 
    For i = 0 to oDrives.Count - 1 Step 2 
        If oDrives.Item(i) = drive Then 
            sUNC = LCase(oDrives.Item(i+1)) 
            exit For
        end if
    Next 
    myPath=sUNC & Mid(myPath, 3)
end if

objIE.document.parentwindow.clipboardData.SetData "text",myPath
objIE.Quit
1
1
1
2016-02-03 19:51:46 +0000
  1. En la ventana del explorador, haga clic con el botón derecho del ratón en el árbol de archivos de la izquierda.
  2. Seleccione Renombrar.
  3. Mientras el texto está resaltado, haga clic con el botón derecho del ratón para copiar. Ahora la ruta se copia (con algún texto extra que se borra fácilmente después de ser copiado a una nueva ubicación.
0
0
0
2014-10-09 22:20:56 +0000

Crea un archivo por lotes DOS como showmappeddrives.bat que contiene:

@echo off    
net use
pause

Coloca el archivo en tu escritorio si quieres. Haz doble clic en él y te mostrará todos tus discos mapeados.

0
0
0
2018-04-20 18:34:56 +0000

Solución simple alternativa:

Si desmapeja la unidad como una letra de unidad, entonces vuelva a añadirla en su lugar como una “ubicación de red” (es decir, haga clic con el botón derecho del ratón en “Ordenador” en la ventana del explorador y seleccione “Añadir una ubicación de red”) Escriba la ruta completa de la carpeta. Al avanzar, se mostrará la ruta completa en la barra de direcciones. Sin embargo, las aplicaciones que dependen de la unidad como letra pueden fallar.

Mirando las respuestas anteriores no creo que haya visto la solución simple que obtuve de: https://answers.microsoft.com/en-us/windows/forum/windows_7-files/how-can-i-display-the-full-unc-path-of-a-sub/ebfd4253-8016-4cbd-b0d6-1bbeae9189f9

0
0
0
2011-02-12 22:06:12 +0000

En las redes corporativas la mayoría de los Departamentos de TI crean acciones usando DFS Name Spaces, dentro de DFS Shares se puede hacer clic con el botón derecho del ratón en una carpeta y encontrar su objetivo.

El otro método sería ver si la Acción se publica en el Directorio Activo. La forma más fácil para otros usuarios de encontrar recursos compartidos sin conocer la ruta UNC o el nombre / ruta del Servidor de Archivos.

Si comparte documentos con un gran número de usuarios, algo como Microsoft SharePoint puede ser una mejor solución ya que ofrece una interfaz web (con WebDAV para el acceso al estilo UNC) y ofrece herramientas integradas para alertar a otros usuarios sobre los documentos.

Espero que esto ayude.

0
0
0
2016-11-24 06:37:36 +0000

Haz clic con el botón derecho del ratón en la carpeta “Compartir”, y obtendrás la ruta. / o \ ~ o haga clic en mostrar toda la red compartida.

-2
-2
-2
2015-02-21 09:33:45 +0000

El SHIFT + RightClick “Copy as path” copiará la unidad+nombre del archivo (i.e. R:\test.doc), o si estás mirando el archivo vía UNCpath el UNCpath+nombre del archivo (i.e. “\nas\Documents\test.doc”)

Este es el comportamiento ‘estándar’ de Windows, y por lo tanto mi favorito, sobre todo los plugins de explorador que ralentizan los sistemas… ;)