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

Copiare il percorso di rete UNC (non la lettera dell'unità) per i percorsi sulle unità mappate da Windows Explorer

Spesso desidero condividere i percorsi di rete di Windows ai file con altre persone del mio team via e-mail o chat. Qui abbiamo un sacco di unità mappate, sia quelle che abbiamo impostato noi stessi che quelle impostate dai nostri signori dell'informatica. Quello che vorrei poter fare è copiare l'intero percorso reale (non la lettera dell'unità) da Windows Explorer per inviarlo alla gente.

Esempio: Ho un file nel mio drive “Q:”, \cartman \utente \cartman \emueller, e voglio inviare un link al file foo.doc in esso contenuto ai colleghi. Quando copio il percorso del file (shift+click destro, “copia come percorso”) riceve il nome del file “Q:\foo.doc” negli appunti. Questo non è utile ad altri, che avrebbero bisogno di vedere \ \cartman \emueller \emueller \foo.doc per poter consumare il link.

In Explorer conosce chiaramente il percorso completo - nella barra degli indirizzi vedo “Computer - > emueller (\cartman \users) (D:) ->”. C'è un modo per dire “hey man copy that path as text with the \cartman\users\emueller not the Q: in it?”

So che potrei semplicemente impostare le posizioni di rete mappate invece delle unità mappate per quelle che ho impostato personalmente ed evitare questo problema, ma la maggior parte delle unità mappate come la condivisione “users” provengono dalla nostra politica IT aziendale e non possono essere sovrascritte. Potrei semplicemente creare una posizione di rete separata e poi ignorare la mia unità D: ma questo è scomodo (e lo fanno in modo da poter spostare gli account sui server). Sicuramente il mio percorso di posta elettronica potrebbe alla fine rompersi perché sto perdendo l'indirezione della lettera di unità, ma per me va bene.

Risposte (17)

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

Forse un lungo giro, ma aprire una finestra di cmd. Poi fare net use > filename

Poi aprire il nome del file e si può ottenere il percorso: 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

Può copiare \server\c\prog\net dal file per il vostro uso.

Spero che questo aiuti.

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

Ho avuto esattamente lo stesso problema – non tutti avevano le stesse unità mappate come me, o mappate con le stesse lettere.

Dopo molte ricerche ho trovato un'estensione del menu contestuale chiamata Path Copy Copy su GitHub https://pathcopycopy.github.io/ ) che è una versione estesa di una estensione simile, più vecchia (chiamata Pathcopy) ha diverse opzioni per copiare i percorsi come testo, inclusa una per i percorsi UNC – un esempio delle opzioni disponibili sono mostrate di seguito:

Si può anche scegliere di mostrare solo una o due righe nel menu contestuale di base, per esempio si possono avere due righe, Copy Long Path, e Copy Long UNC Path. E’ ottimo per inviare e-mail agli utenti della vostra azienda che hanno accesso a un percorso di rete, e se hanno la vostra stessa mappatura di rete, potete scegliere la prima, altrimenti potete usare la seconda.

Aggiornamento : A partire dalla versione 12.0, un nuovo installer “portatile” è disponibile sul sito sopra citato, che si installa solo per l'utente corrente nella cartella AppData\Local. Non l'ho provato, ma potrebbe essere una soluzione per coloro che non possono installare normalmente.

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

UPDATE:** L'approccio di CoolCol è ancora più facile del mio. Inviare la risposta.

Ecco la soluzione che uso quando invio i percorsi di rete mappati tramite Outlook:

  1. In Esplora risorse di Windows, tenere premuto il tasto shift, r-cliccare sul file e selezionare “ Copia come percorso”.
  2. In Esplora risorse di Windows, tenere premuto il tasto shift, r-cliccare sul file e selezionare “ Copia come percorso”.
  3. Inserire un Hyperlink nell'e-mail e incollare nel campo dell'indirizzo della finestra di dialogo Hyperlink. (Scorciatoia: ctrl-K ctrl-V + OK). A questo punto, il link visualizzerà la lettera di unità mappata come radice (Q:\foo.doc).
  4. Inserire un Hyperlink nel campo dell'indirizzo e-mail e incollarlo nel campo dell'indirizzo. Ora, r-click e selezionare “ Modifica Hyperlink…” noterete che il campo Indirizzo è stato tradotto nuovamente nel percorso UNC completo (\cartman\users\emueller\foo.doc). 4. Con il mouse nel campo Indirizzo, premere ctrl-A e ctrl-C per copiare il percorso completo negli appunti, quindi spostare il cursore sul campo superiore (“Text to Display:”) premere ctrl-A e ctrl-V per visualizzarlo correttamente nell'e-mail.
32
32
32
2015-06-01 08:49:58 +0000

Geoff era fondamentalmente perfetto, ma per fare un passo avanti,

  1. 1. Trascinare la cartella da Windows Explorer, nel corpo della nuova email,
  2. poi selezionare ‘Create Hyperlink Here’.
20
20
20
2012-08-24 20:23:12 +0000

Ho appena avuto la necessità della stessa cosa che chiede l'OP e dopo aver cercato su Google e letto le risposte, nessuna di queste ha fornito ciò che penso l'OP ed io stiamo cercando.

Il problema qui è che si può mappare una condivisione di rete su Drive Y mentre qualcun altro nell'organizzazione può avere la stessa condivisione di rete mappata come Drive X; quindi, l'invio di un link come Y:\mydirectory potrebbe non funzionare per nessun altro tranne che per me.

Come spiega l'OP, Explorer mostra il percorso effettivo nella barra di Explorer, ma non è possibile copiarlo (la digitazione è noiosa e soggetta a errori, quindi questa non è un'opzione) anche se si sceglie copy as path dal menu contestuale:

Quindi la soluzione che ho trovato (copiando il codice di qualcun altro) è stato un piccolo programma C# che si può chiamare da un menu contestuale in Explorer e che vi permetterà di tradurre la lettera di unità mappata all'effettivo UNC path.

Ecco il codice:

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()));           
            }
        }
    }
}
``` ```
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;
    }
}

Ed ecco la definizione della classe Pathing (cercherò di trovare il sorgente effettivo perché non ricordo dove l'ho trovato):

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"
``` &001 


Si costruisce il programma e si mette l'eseguibile da qualche parte nel PC, ad esempio in `c:\Utils` 



Ora si aggiunge un'opzione di menu contestuale in Explorer come così: 


**Regedit** e poi: 


&001 &001 


Hai finito. Ora vedrete questa opzione quando farete clic con il tasto destro del mouse su una directory da un'unità mappata: 


&004 


# Nota 
Posso fornire l'eseguibile in modo da non dover fare la compilazione da soli. Basta che mi lasciate una nota qui.
12
12
12
2013-10-16 12:16:39 +0000

Eseguire il 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

(Grazie Jimbo, la tua risposta è stata buona ma non breve!)

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

Qualcuno di nome Shawn Keene ha fornito una soluzione a questo nel Forum di Windows 7 sul sito Microsoft. Si trova in una funzione chiamata Network Place.

  1. Aprire Windows Explorer.

    1. Cliccare con il tasto destro del mouse sulla voce Computer nel riquadro di sinistra e selezionare “Aggiungi una posizione di rete”. Fare clic su Avanti.
  2. Selezionare l'opzione “Scegliere una posizione di rete personalizzata” (era l'unica che mi è stata presentata) e fare clic su Avanti.

  3. Fare clic su Avanti. 4. Digitare il percorso UNC desiderato e fare clic due volte su Avanti. Questo aggiunge una voce che appare nel riquadro sinistro di Esplora risorse di Windows sotto le unità mappate, ma funziona proprio come un'unità mappata e appare in questo modo nella finestra di dialogo Salva applicazioni.

  4. In Esplora risorse di Windows, navigare attraverso questa voce fino alla sottocartella desiderata e fare clic nell'area vuota a destra della visualizzazione del percorso delle briciole di pane nella parte superiore della schermata di Esplora risorse di Windows e il percorso UNC appare ed è evidenziato.

4
4
4
2014-11-13 15:35:34 +0000
  1. 1. Aprire la cartella.
  2. 3. Trascinare un file dalla cartella in Microsoft Word.
3
3
3
2013-10-02 19:04:28 +0000

Tenere premuto Shift e cliccare con il tasto destro del mouse sul file e selezionare “Copy as path”. Inserire un Hyperlink nell'email e incollare nel campo dell'indirizzo della finestra di dialogo Hyperlink.

Dopo aver creato il collegamento ipertestuale nell'email, è fatta.

Il link mostrerà la lettera di unità mappata che è vera. Quando il(i) destinatario(i) clicca sul link nell'email, seguirà il percorso UNC sia che l'utente sia mappato o meno.

Ho provato questo in altre applicazioni Office 2010, Excel, Power Point e Word.

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

Potete anche cliccare con il tasto destro del mouse sul nome della directory nella vista della directory del computer e selezionare rinomina. In questo modo avrete accesso a copiare il percorso.

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

Salvate questo nella vostra cartella sendto, la mia è in C:\Documents and Settings\xxxxID\SendTo con un nome come Copy UNC Filepath.vbs (deve terminare .vbs) Ora quando cliccate con il tasto destro del mouse su una cartella o un file copierà l'UNC negli appunti. La nostra cartella personale è l'unità F e quindi non converte né C: né 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. 1. Nella finestra di explorer, fare clic con il tasto destro del mouse sull'unità mappata nell'albero dei file a sinistra. 3. Selezionare Rinomina.
  2. 3. Mentre il testo è evidenziato, fare clic con il tasto destro del mouse su Copia.
  3. Selezionare Rinomina. Ora il percorso viene copiato (con del testo extra che viene facilmente cancellato dopo essere stato copiato in una nuova posizione.
0
0
0
2014-10-09 22:20:56 +0000

Creare un file batch DOS come showmappeddrives.bat che contiene:

@echo off    
net use
pause

Posizionare il file sul desktop, se lo si desidera. Fare doppio clic su di esso e mostrerà tutte le unità mappate.

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

Soluzione alternativa semplice:

Se si scompone l'unità come lettera di unità, aggiungerla invece come “posizione di rete” (cioè fare clic con il tasto destro del mouse su “Computer” nella finestra di Explorer e selezionare “Aggiungi una posizione di rete”) Digitare il percorso completo della cartella. Andando avanti, il percorso completo verrà visualizzato nella barra degli indirizzi. Tuttavia, le applicazioni che dipendono dall'unità come lettera possono fallire.

Guardando le risposte di cui sopra non credo di aver visto la semplice soluzione sopra descritta che ho ottenuto da: https://answers.microsoft.com/en-us/windows/forum/windows_7-files/how-can-i-display-the-full-unc-path-unc-path-of-a-sub/ebfd4253-8016-4cbd-b0d6-1bbeae9189f9

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

Nelle reti aziendali la maggior parte dei Dipartimenti IT crea le azioni utilizzando i Name Spaces DFS, all'interno di DFS Shares è possibile fare clic con il tasto destro del mouse su una cartella e trovarne l'obiettivo.

L'altro metodo sarebbe quello di vedere se l'azione è pubblicata in Active Directory. Il modo più semplice per gli altri utenti di trovare le condivisioni senza conoscere il percorso UNC o il nome / percorso del File Server.

Se i vostri documenti di condivisione con un gran numero di utenti, qualcosa come Microsoft SharePoint può essere una soluzione migliore in quanto offre un'interfaccia web (con WebDAV per l'accesso in stile UNC) e offre strumenti integrati per avvisare gli altri utenti dei documenti.

Hope This Help.

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

Cliccare con il tasto destro del mouse sulla cartella > Condividi > “ condividi a te stesso (non significa nulla) . si otterrà il percorso. / o > . o fare clic su mostra tutta la rete condivisa.

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

MAIUSC + clic destro “Copia come percorso” copierà il drive+nome del file (cioè R:\ \test.doc), o se si sta guardando il file tramite UNCpath il UNCpath+nome del file (cioè “\nas\Documents\test.doc”)

Questo è il comportamento ‘standard’ di Windows, e quindi il mio preferito, soprattutto i plugin di Explorer che rallentano i sistemi….. ;)