- Вопрос или проблема
- Похоже, что команда junction была исключена в Windows 10.
- Так как же создать junctions или символические ссылки на директории в Windows 10?
- Примеры
- Дополнительное чтение
- Нет необходимости ничего устанавливать!
- Пакетный файл
- Ответ или решение
- Способы создания символических ссылок
- 1. Использование командной строки
- 2. Использование PowerShell
- 3. Использование сторонних инструментов
- Примечания
- Заключение
Вопрос или проблема
Я читал 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
. Однако следует учитывать, что для выполнения данной команды необходимы права администратора. Если вы хотите создать символическую ссылку на папку, выполните следующие шаги:
-
Откройте командную строку с правами администратора. Для этого наберите
cmd
в поиске Windows, щелкните правой кнопкой мыши на "Командная строка" и выберите "Запуск от имени администратора". -
Используйте команду следующего формата:
mklink /D "C:\Путь\К\Ссылке" "C:\Путь\К\ИсходнойПапке"
Пример:
mklink /D "C:\Примеры\СсылкаНаПапку" "C:\Примеры\ИсходнаяПапка"
-
Для создания жесткой ссылки (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.