Как я могу создать символическую ссылку в Windows 10?

Вопрос или проблема

Я читал http://web.archive.org/web/20160820000804/https://www.dropboxwiki.com/tips-and-tricks/sync-game-saves-across-multiple-computers, и я знаю, что команда junction/mklink работала в Windows 7, но похоже, что команда junction была исключена в Windows 10.

Какой правильный способ создания символических ссылок в Windows 10?

Похоже, что команда junction была исключена в Windows 10.

Вы можете скачать junction из Windows SysInternals (который является частью Microsoft):

Junction не только позволяет создавать NTFS junctions, но также позволяет увидеть, являются ли файлы или директории точками повторной парсировки. Точки повторной парсировки — это механизм, на котором основаны NTFS junctions, и они используются службой удаленного хранилища Windows (RSS), а также точками монтирования томов.

Пожалуйста, прочитайте этую статью Microsoft KB для получения советов по использованию junctions.

Обратите внимание, что Windows не поддерживает junctions к директориям на удаленных сетях.


Так как же создать junctions или символические ссылки на директории в Windows 10?

Скачайте junction, как указано выше.

Теперь вы можете использовать следующие команды.

Создать junction:

junction "C:\Documents and Settings\UserName\My Documents\My Dropbox\My Games" "C:\Documents and Settings\UserName\My Documents\My Games"

Создать символическую ссылку на директорию:

mklink /D "C:\Documents and Settings\UserName\My Documents\My Dropbox\My Games" "C:\Documents and Settings\UserName\My Documents\My Games"

Вы можете использовать либо mklink /j, либо junction в Windows 10 и выше для создания junctions.

Вы можете использовать mklink /d в Windows 10 и выше для создания символических ссылок на директории.

Примечания:

  • junction также может перечислять junctions и определять, является ли файл junction, в отличие от mklink.

  • mklink является внутренней командой, доступной только в среде cmd.

  • По умолчанию для создания символических ссылок требуются права администратора.

    Эти права также могут быть предоставлены другим пользователям. Настройка безопасности “Создание символических ссылок” может быть предоставлена:

      Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment\
    

Примеры

Используя mklink для создания символической ссылки на директорию:

F:\test>mklink /d test-dir-sym-link test
создана символическая ссылка для test-dir-sym-link <<===>> test

Используя mklink для создания junction:

F:\test>mklink /j test-junction test
Создана junction для test-junction <<===>> test

Используя junction для создания junction:

F:\test>C:\apps\NirSoft\SysinternalsSuite\junction.exe test-junction test

Junction v1.06 - Создатель junction и просмотрщик точек повторной парсировки
Copyright (C) 2000-2010 Mark Russinovich
Sysinternals - www.sysinternals.com

Создано: F:\test\test-junction
Целевой путь: F:\test\test

Дополнительное чтение

  • Индекс A-Z командной строки Windows CMD – Отличная справка по всем вопросам, связанным с командной строкой Windows.
  • mklink – Создать символическую ссылку на директорию или файл, или создать жесткую ссылку на файл или junction директории.

Откройте сеанс PowerShell с повышенными правами администратора и введите:

New-Item -ItemType SymbolicLink -Path E:\Data\MyGames -Target "C:\users\UserName\MyGames"

или используя менее многословный синтаксис:

ni E:\Data\MyGames -i SymbolicLink -ta "C:\users\UserName\MyGames" 

Конечно, в 2016 году и с Windows 10 вы не хотите возиться с командами cmd или внешними загрузками.

Windows 10 поставляется с PowerShell 5, который имеет встроенную поддержку создания символических ссылок.

Если вам нужен инструмент с графическим интерфейсом для создания/редактирования символических ссылок, используйте
http://schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html

Link Shell Extension (LSE) предоставляет возможность создавать жесткие ссылки, junctions, точки монтирования томов, а также символические ссылки Windows 7/8 (далее в тексте именуемые совместно как Links) с процессом клонирования папок, который использует жесткие ссылки или символические ссылки, и процесс копирования, отвечающий за junctions, символические ссылки и жесткие ссылки. LSE, как следует из названия, реализован как расширение оболочки и доступен из Проводника Windows или аналогичных файловых/папочных менеджеров. Расширение позволяет пользователю выбирать один или несколько файлов или папок, а затем, используя мышь, завершать создание требуемых ссылок – жестких ссылок, junctions или символических ссылок, или в случае папок создавать клоны, состоящие из жестких или символических ссылок. LSE поддерживается на всех версиях Windows, которые поддерживают NTFS версии 5.0 и выше, включая Windows XP64 и Windows 7/8/10. Жесткие ссылки, junctions и символические ссылки не поддерживаются на файловых системах FAT, и ни процесс клонирования, ни интеллектуальная копия не поддерживаются на файловых системах FAT.

введите описание изображения здесь

Если у вас Windows 10 версии 14972 (декабрь 2016) или выше:

https://blogs.windows.com/windowsdeveloper/2016/12/02/symlinks-windows-10

вы можете включить режим разработчика:

https://howtogeek.com/292914/what-is-developer-mode-in-windows-10

затем использовать mklink без прав администратора. Кроме того, PowerShell 6.2.0 (март 2019) или выше позволяет создавать символические ссылки без прав администратора:

New-Item -ItemType SymbolicLink -Path new.txt -Target old.txt

Существует инструмент с открытым исходным кодом под названием SymlinkCreator, который предоставляет минимальный интерфейс для перетаскивания файлов и папок, которые нужно сделать символическими ссылками. Он может использовать как относительные пути (если находятся на одном диске), так и абсолютные пути для создания символических ссылок. Есть возможность сохранить скрипт, использованный для создания символических ссылок.

введите описание изображения здесь

Отказ от ответственности: Я автор SymlinkCreator. Я создал его для личного использования, но затем поделился им со всеми.

Нет необходимости ничего устанавливать!

Существует простой и открытый symlink_creator.bat файл.

  • Перетащите и отпустите желаемый файл/папку на этот файл.

  • Это открытый (см. инструкции), так что просто Кликните правой кнопкой мыши > Изменить на файле, чтобы увидеть его содержимое (всего несколько строк) самостоятельно. Не требуется установка дополнительных .exe или .dll файлов.

Пакетный файл

::  ================================================================== ::
::  ========================  Puvox.Software  ======================== ::
::  ================================================================== ::
::  ============== Создатель символических ссылок с Перетаскиванием v1.3 =============== ::
::  Этот скрипт создает символическую ссылку на любые файлы/папки ( ) 
::  ================================================================== ::
::  ================================================================== ::

@echo off
setlocal enableextensions enabledelayedexpansion

if "%~1"=="" ( mshta "javascript:alert('Вы должны перетащить желаемые файлы на это');close();" && exit )

set /P inputed_target_dir= Путь к папке, в которой будет создана символическая ссылка:
set inputed_target_dir=%inputed_target_dir%\
set type=0

for %%a in (%*) do  (

rem  в КРОНШТЕЙНАХ мы используем ! вместо % для установленных переменных  (читайте больше: https://superuser.com/a/78509/249349 )
set original_path=%%a
set original_path_quoted=!original_path!
rem  Сделать его заключенным в кавычки (если он еще не заключен в кавычки)
set original_path_quoted|find """" >nul || set original_path_quoted="!original_path!"

set isDirectory=no
:: если директория
FOR %%i IN (!original_path_quoted!) DO IF EXIST %%~si\NUL (
    set isDirectory=yes
    for /D %%i in (!original_path_quoted!) do SET original_drive=%%~di
    for /D %%i in (!original_path_quoted!) do SET original_dir=!original_drive!%%~pi
    for /f "delims=" %%i in (!original_path_quoted!) do SET original_basename=%%~ni
)

:: если файл
FOR %%i IN (!original_path_quoted!) DO IF NOT EXIST %%~si\NUL (
    set isDirectory=no
    for /f "delims=" %%i in (!original_path_quoted!) do SET original_drive=%%~di
    for /f "delims=" %%i in (!original_path_quoted!) do SET original_dir=!original_drive!%%~pi
    for /f "delims=" %%i in (!original_path_quoted!) do SET original_basenameWithExt=%%~nxi
)


for /D %%i in ("%inputed_target_dir%") do SET target_drive=%%~di
for /D %%i in ("%inputed_target_dir%") do SET target_dir=!target_drive!%%~pi
  
set isSameDrive=1
IF /I "!original_drive!"=="!target_drive!" (  set isSameDrive=2 )

:: если те же директории, то используйте префикс имени
set prefix=
IF /I "!original_dir!"=="!target_dir!" ( set prefix=_symlinked_ )

if !type! LSS 1 (
    rem ::   Если одинаковые диски, то позвольте пользователю выбрать ЖЕСТКИЙ метод. В противном случае можно использовать только МЯГКИЙ
    set type=2

    rem ::   НЕ ИСПОЛЬЗУЙТЕ   "!isSameDrive!"=="yes"  для сравнения, так как он имеет проблему  
    if /i !isSameDrive! GTR 2 ( set /P type= Похоже, что источники и назначение находятся на одном диске, поэтому у вас есть возможность создать ЖЕСТКУЮ ССЫЛКУ [нажмите 1], в противном случае нажмите ENTER, и будет создана СТАНДАРТНАЯ МЯГКАЯ ССЫЛКА : )
)

:: если директория
if !isDirectory!==yes (
    FOR %%i IN (!original_path_quoted!) DO IF EXIST %%~si\NUL (
        IF "!type!"=="1" ( 
          mklink /J "!target_dir!\!prefix!!original_basename!" !original_path_quoted!
        ) ELSE ( 
          mklink /D "!target_dir!\!prefix!!original_basename!" !original_path_quoted!
        )
    )
)

:: если файл
if !isDirectory!==no (
    FOR %%i IN (!original_path_quoted!) DO IF NOT EXIST %%~si\NUL (
        IF "!type!"=="1" ( 
          mklink /H "!target_dir!\!prefix!!original_basenameWithExt!" !original_path_quoted!
        ) ELSE ( 
          mklink "!target_dir!\!prefix!!original_basenameWithExt!" !original_path_quoted!
        )
    )
)


)
:: FOR loop


:: mshta "javascript:alert('ошибка: создание жесткой ссылки для различных дисков не удалось');close();"
mshta "javascript:alert('Завершено');close();"
endlocal

Ответ или решение

Создание символических ссылок в Windows 10 может быть полезным для упрощения доступа к файлам и папкам. Эта операция, доступная как через командную строку, так и через PowerShell, позволяет создать ссылки, указывающие на другие объекты файловой системы. Рассмотрим, как выполнить эту задачу наиболее эффективно.

Способы создания символических ссылок

В Windows 10 существуют разные методы создания символических ссылок, в том числе использование командной строки, PowerShell и сторонних инструментов.

1. Использование командной строки

Для создания символических ссылок в командной строке используйте команду mklink. Однако следует учитывать, что для выполнения данной команды необходимы права администратора. Если вы хотите создать символическую ссылку на папку, выполните следующие шаги:

  1. Откройте командную строку с правами администратора. Для этого наберите cmd в поиске Windows, щелкните правой кнопкой мыши на "Командная строка" и выберите "Запуск от имени администратора".

  2. Используйте команду следующего формата:

    mklink /D "C:\Путь\К\Ссылке" "C:\Путь\К\ИсходнойПапке"

    Пример:

    mklink /D "C:\Примеры\СсылкаНаПапку" "C:\Примеры\ИсходнаяПапка"
  3. Для создания жесткой ссылки (junction) вы можете использовать команду:

    mklink /J "C:\Путь\К\Ссылке" "C:\Путь\К\ИсходнойПапке"

2. Использование PowerShell

Если вы предпочитаете PowerShell, команда для создания символической ссылки будет выглядеть так. Откройте PowerShell с правами администратора и введите:

New-Item -ItemType SymbolicLink -Path "C:\Путь\К\Ссылке" -Target "C:\Путь\К\ИсходнойПапке"

Для краткости вы можете воспользоваться следующей командой, которая также работает:

ni "C:\Путь\К\Ссылке" -i SymbolicLink -ta "C:\Путь\К\ИсходнойПапке"

3. Использование сторонних инструментов

Если вы не хотите использовать консольные команды, можно воспользоваться сторонними инструментами с графическим интерфейсом, такими как Link Shell Extension или SymlinkCreator.

Link Shell Extension позволяет легко создавать символические ссылки, жесткие ссылки и точки монтирования, прямо через проводник Windows, перетаскивая файлы и папки.

SymlinkCreator — это легкий инструмент с минимальным интерфейсом, который позволяет создавать символические ссылки с помощью простого перетаскивания объектов на программный интерфейс.

Примечания

  • Чтобы создать символические ссылки, необходимо иметь права администратора. В Windows 10 можно изменить настройки прав доступа, предоставив другим пользователям право на создание символических ссылок через политики конфигурации.

  • Если вы используете Windows 10 версии 14972 или выше, вы можете включить «Режим разработчика», что позволит вам создавать символические ссылки без административных прав.

Заключение

Создание символических ссылок в Windows 10 — это полезный инструмент для упрощения доступа и организации ваших файлов и папок. Используя описанные методы, вы сможете легко создать необходимые вам ссылки. В зависимости от ваших предпочтений, вы можете выбрать любой способ — от командной строки до сторонних приложений с графическим интерфейсом, что делает этот процесс доступным для каждого пользователя системы Windows 10.

Оцените материал
Добавить комментарий

Капча загружается...