Скопируйте сетевой путь UNC (не букву диска) для путей на подключенных дисках из проводника Windows
274643
Ernest Mueller
Я часто хочу поделиться сетевыми путями Windows с файлами с другими людьми в моей команде по электронной почте или в чате. Здесь у нас много подключенных дисков, как самих, так и созданных нашими ИТ-управляющими. То, что я хотел бы сделать, это скопировать полный реальный путь (не букву диска) из проводника Windows для отправки людям.
Пример: у меня на диске "Q:" есть файл \\ cartman \ users \ emueller, и я хочу отправить коллеге ссылку на файл foo.doc в нем. Когда я копирую путь к файлу (shift + правый клик, «копировать как путь»), он получает имя файла «Q: \ foo.doc» в буфере обмена. Это бесполезно для других, которые должны видеть \\ cartman \ users \ emueller \ foo.doc, чтобы иметь возможность использовать ссылку.
В Проводнике он четко знает полный путь - в адресной строке я вижу «Компьютер -> emueller (\\ cartman \ users) (Q :) ->». Есть ли способ сказать "эй, человек, скопируйте этот путь как текст с \\ cartman \ users \ emueller, а не с Q: в нем?"
Я знаю, что могу просто настроить сопоставленные сетевые расположения вместо сопоставленных дисков для тех, которые я настроил лично, и избежать этой проблемы, но большинство сопоставленных дисков, таких как «пользователи», основаны на нашей корпоративной ИТ-политике и не могут быть переопределенным. Я мог бы просто создать отдельную сетевую папку, а затем проигнорировать мой диск Q:, но это неудобно (и они делают это, чтобы перемещать учетные записи между серверами). Конечно, мой путь по электронной почте может в конечном итоге сломаться, потому что я теряю косвенность буквы диска, но это нормально для меня.
Если вы работаете в закрытой корпоративной среде, где вы не можете установить какие-либо сторонние приложения и / или получить доступ к реестру, то это решение будет работать ... http://superuser.com/a/704374/46099
Richard 10 лет назад
0
Может быть, далеко, но откройте окно cmd. Тогда делайnet use > filename
Затем откройте имя файла, и вы можете получить путь: Пример:
C:\Users\me\net use > drives.txt
открытие drives.txt
New connections will be remembered. Status Local Remote Network ------------------------------------------------------------------------------- H: \\server\c\proj\net Microsoft Windows Network
Можно скопировать \\server\c\prog\netиз файла для вашего использования.
Надеюсь это поможет.
просто и легко. Все остальные решения в теме очень объемные ...
radistao 10 лет назад
9
Или просто пропустите "> drives.txt" и скопируйте путь вывода прямо из окна терминала.
DarenW 10 лет назад
8
Просто и легко. Выиграть.
CAD bloke 10 лет назад
1
С msysgit / bash у вас под рукой это намного проще, чем другие решения. Большой!
Jonas Byström 10 лет назад
0
41
i_saw_drones
У меня была точно такая же проблема - не у всех были одинаковые подключенные диски или у меня одинаковые буквы.
После долгих поисков я нашел расширение контекстного меню с именем Path Copy Copy на GitHub ( https://pathcopycopy.github.io/ ), который является расширенной версией аналогичного, более старого расширения (называемого Pathcopy), которое имеет довольно много опций для копирования путей. как текст, включая один для путей UNC - пример доступных опций показан ниже:
Вы также можете выбрать отображение только одной или двух строк в базовом контекстном меню, например, у вас может быть две строки: Копировать длинный путь и Копировать длинный путь UNC. Он отлично подходит для отправки электронной почты пользователям вашей компании, у которых есть доступ к сетевому пути, и если у них такое же сетевое сопоставление, как и у вас, вы можете выбрать первое, в противном случае вы можете использовать второе.
Обновление : Начиная с версии 12.0, на вышеуказанном сайте доступен новый «портативный» установщик, который устанавливает в AppData\Localпапку только текущего пользователя . Я не пробовал это, но это может быть решением для тех, кому запрещено нормальную установку.
Немного грязно, я предпочитаю [net use] (http://superuser.com/questions/244579/copy-unc-network-path-not-drive-letter-for-paths-on-mapped-drives-from- windows / 660654 # 660654) в соответствии с предложением Джимбо.
Jonas Byström 10 лет назад
3
35
kmote
ОБНОВЛЕНИЕ: подход CoolCool даже проще, чем мой. Upvote его ответ.
Вот обходной путь, который я использую при отправке путей к подключенной сети через Outlook:
В проводнике Windows, удерживая shiftкнопку, r-щелкните файл и выберите « Копировать как путь ».
Вставьте гиперссылку в электронное письмо и вставьте в поле адреса диалогового окна «Гиперссылка». (Ярлык: ctrl-Kctrl-V+ ОК). На данный момент, ссылка будет отображаться переведенной буква диска в качестве корня ( Q:\foo.doc).
Теперь, r-click и выберите « Edit Hyperlink ... », вы заметите, что поле Address было переведено обратно в полный путь UNC ( \\cartman\users\emueller\foo.doc). Наведите указатель мыши на поле «Адрес», нажмите ctrl-Aи, ctrl-Cчтобы скопировать полный путь к буферу обмена, затем наведите курсор на верхнее поле («Текст для отображения:») ctrl-Aи ctrl-Vотобразите его правильно в своем электронном письме.
Я не вижу описанных вещей.
DarenW 10 лет назад
0
какую часть ты не видишь? Можете ли вы создать гиперссылку? Вы знаете, как редактировать ссылку?
kmote 10 лет назад
0
На шаге 3. Если вы введете символ и удалите его, он обновит «Текст для отображения», что проще, чем копировать / вставить.
79E09796 9 лет назад
3
Вам не нужно вводить символ в «Текст для отображения», а затем удалить его, просто удалите его.
Bae 8 лет назад
0
См. Ответ Coolcol http://superuser.com/a/922152/190599, чтобы ускорить копирование, щелкнув правой кнопкой мыши параметр «Создать ярлык здесь».
Bae 8 лет назад
1
Отличный совет, @Bae! Я обновил свой ответ, чтобы указать на CoolCool.
kmote 5 лет назад
0
23
Coolcol
Geoff was basically spot on, but to take it one step further,
RIGHT-DRAG the folder from Windows Explorer, into the body of your new email,
then select 'Create Hyperlink Here'.
самый быстрый и самый лучший из коробки
Alex 8 лет назад
1
Должен быть лучшим ответом, так как проблема возникает в основном в корпоративной среде, и вы не можете установить программное обеспечение там самостоятельно.
berezovskyi 8 лет назад
3
Это должно быть объединено с ответом kmote http://superuser.com/a/454119/190599, так как они вместе очень быстрые
Bae 8 лет назад
0
17
Icarus
Мне просто нужно было то же самое, что спрашивает ОП, и после поиска в Google и прочтения ответов ни один из них не дал того, что, по моему мнению, ОП и я ищем.
Проблема здесь в том, что можно сопоставить общий сетевой ресурс, Drive Yтогда как кому-то еще в организации может быть сопоставлен тот же сетевой ресурс Drive X; поэтому отправка такой ссылки Y:\mydirectoryможет не работать ни для кого, кроме меня.
Как объясняет OP, Explorer отображает фактический путь на панели Explorer, но вы не можете скопировать его (ввод текста утомителен и подвержен ошибкам, так что это не вариант), даже если вы выбираете copy as pathиз контекстного меню:
Таким образом, решение, которое я придумал (скопировав чей-то код), было маленькой программой на C #, которую вы можете вызвать из контекстного меню в Проводнике и которая позволит вам преобразовать букву подключенного диска в фактическую UNC path.
Вот код:
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())); } } } }
А вот Pathingопределение класса (я постараюсь найти фактический источник, так как не могу вспомнить, где я его нашел):
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:\2008-02-29" /// might return: "\\networkserver\Shares\Photos\2008-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 : 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; } }
Вы создаете программу и размещаете исполняемый файл где-то на вашем ПК, например, в c:\Utils
Теперь вы добавляете опцию контекстного меню в проводнике так:
Regedit, а затем:
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"
Вы сделали. Теперь вы увидите эту опцию, если щелкнуть правой кнопкой мыши каталог с подключенного диска:
Заметка
Я могу предоставить исполняемый файл, так что вам не придется делать сборку самостоятельно. Просто напишите мне здесь.
Будет хорошо, если вы заархивировали исполняемый файл и поместили в публичное пространство, например в папку Dropbox _Public_, и указали здесь ссылку. знак равно
ADTC 10 лет назад
1
Много работы, я предпочитаю [net use] (http://superuser.com/questions/244579/copy-unc-network-path-not-drive-letter-for-paths-on-mapped-drives-from -windows / 660654 # 660654) в соответствии с предложением Джимбо.
Jonas Byström 10 лет назад
3
@ JonasByström Но конечный результат так же хорош, как и вопрос ОП. Так что «много работы» - именно то, что заслужило этот ответ, даже если я не буду использовать его лично
sehe 8 лет назад
0
@sehe Если это «именно так», его бы еще больше поддержали, если бы он добавил больше шагов, возможно, с использованием антивируса Norton и использованием молотка для набора текста на клавиатуре. Наверное. Некоторые люди голосовали за [Сару Пэйлин] (https://en.wikipedia.org/wiki/Sarah_Palin). И что? Слабоумные делают то, что делают, но не оправдывают это. «Конструктивная критика», я полагаю, называется выше.
Jonas Byström 8 лет назад
0
11
Jonas Byström
Run the cmd.exe command 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
(Thanks Jimbo, your answer was good but not brief!)
Я сожалею, что у меня есть только одно возражение, чтобы дать. Это действительно лаконично. Благодарю.
user26398 8 лет назад
2
Это идеальный подход
Ryan B. 7 лет назад
1
5
Mark
Кто-то по имени Шон Кин предоставил решение этой проблемы на форуме Windows 7 на веб-сайте Microsoft. Это функция, которая называется Network Place.
Откройте проводник Windows.
Щелкните правой кнопкой мыши запись «Компьютер» на левой панели и выберите «Добавить сетевое расположение». Нажмите кнопку "Далее.
Выберите опцию «Выбрать пользовательское сетевое местоположение» (она была единственной, представленной мне) и нажмите «Далее».
Введите требуемый UNC-путь и дважды нажмите «Далее». Это добавляет запись, которая отображается в левой панели Проводника Windows под подключенными дисками, но работает так же, как подключенный диск, и отображается таким образом в диалоговом окне «Сохранить» приложений.
В проводнике Windows перейдите через эту запись к нужному подкаталогу и щелкните в пустой области справа от отображения пути хлебных крошек в верхней части экрана проводника Windows. Путь UNC появится и будет выделен.
если вы собираетесь процитировать другой источник, не могли бы вы также дать ссылку на этот источник?
DMA57361 13 лет назад
1
Первоначально из этого поста - источник W7 не был указан там: http://www.countrykeepers.com/wp/?p=3017
Mark 13 лет назад
0
Привет, спасибо, что включили. Я знаю об этом, вот что я имел в виду под «я мог просто настроить сопоставленные сетевые расположения вместо сопоставленных дисков» в вопросе - это то, что многие из них приходят ко мне как сопоставленные диски, любезно предоставленные моим ИТ-отделом. отдел, и я хотел бы иметь возможность связать их. Но это определенно возможное решение некоторых проблем!
Ernest Mueller 13 лет назад
0
PS Я бы проголосовал за ваш ответ, но не достаточно респ, так что "виртуальный +1!"
Ernest Mueller 13 лет назад
0
4
Geoff
Откройте папку.
ВПРАВО перетащите файл из папки в Microsoft Word.
3
keNscale
Удерживая Shiftнажатой кнопку, щелкните правой кнопкой мыши файл и выберите «Копировать как путь». Вставьте гиперссылку в электронное письмо и вставьте в поле адреса диалогового окна «Гиперссылка».
После того, как вы создали гиперссылку в письме, все готово.
Ссылка покажет букву диска, это правда. Когда получатель (и) нажимает на ссылку в электронном письме, он будет следовать по пути UNC независимо от того, сопоставлен ли пользователь или нет.
Я пробовал это в других приложениях Office 2010, Excel, Power Point и Word.
Это работает, но это тот же ответ, что и ответ [kmote] (https://superuser.com/a/454119/206587)
davidmneedham 6 лет назад
0
2
Craig
Вы также можете щелкнуть правой кнопкой мыши имя каталога в представлении каталога компьютера и выбрать переименовать. Это даст вам доступ к копированию пути.