У меня есть простой сценарий, но я не знаю, есть ли в Windows способ сделать это или нет:

У нас есть 2 каталога с этими файлами:

Книга:

   D:\sources\Books
                |___ A.pdf
                |___ B.pdf

Lib:

   E:\extra\text\science\Lib
                          |___ X.pdf
                          |___ Y.pdf

Примечание: X.pdf находится внутри папки Lib


Теперь я хочу:

  1. Перенаправляйте каждый начальный запрос о D:\sources\Books\X.pdf на E:\extra\text\science\Lib\X.pdf
  2. Решение не должно приводить к X.pdf показанному в папке « Book », когда пользователи открывают папку « Book » с помощью windows explorer (ее следует открыть, typing the path in windows explorer address bar или CMD или команды программного обеспечения).

Примечания к вопросу:

  1. Ваше решение работает в версиях Witch Windows?
  2. Есть ли способ для Windows XP , 7 и 8?
  3. Требуется ли NTFS в вашем решении?

1 ответ1

1

Следующее создаст символическую ссылку в D:~\Books, которая ведет к E:~\Lib, а затем установит скрытый атрибут (+H), ключ /L гарантирует, что атрибут будет установлен только для символической ссылки. Ссылка будет видна в Windows, только если пользователь установил видимость скрытых файлов вручную:

MKLINK D:\sources\Books\X.pdf E:\extra\text\science\lib\X.pdf | ATTRIB +H D:\sources\Books\X.pdf /L

Источники: Windows из командной строки справки для MKLINK и ATTRIB

Символические ссылки работают только с NTFS в Windows. Если одна или обе файловые системы находятся в FAT32, вам придется использовать ярлык. Ярлыки не могут быть легко созданы из командной строки, поэтому просто right click -> "Создать" -> "Ярлык" -> введите E:\extra\text\science\lib\X.pdf -> "Далее" -> введите в X.pdf -> "Готово" -> "щелкните правой кнопкой мыши по ярлыку" -> "Свойства" -> вкладка "Общие" -> отметьте "Скрытый". Это также не будет видно, если пользователь не выбрал видимость скрытых файлов вручную.

Основное отличие состоит в том, что символическая ссылка создается на уровне файловой системы и обычно обрабатывается как сам файл, тогда как ярлык представляет собой отдельный файл, который запускает сценарий и фактически имеет полное имя `X.pdf.lnk '. Для ваших целей это не должно иметь значения, если вы не пытаетесь манипулировать файлом с помощью скриптов.

NB: ни символическая ссылка, ни ярлык не будут видны из терминала, если только пользователь не DIR /A для отображения скрытых файлов; Однако они будут работать. При необходимости вы можете отключить возможность пользователям просматривать скрытые файлы из проводника Windows с помощью (GUI) regedit.exe или из командной строки с помощью REG . Обзор REG /? и посмотрите на эту статью: http://www.askvg.com/the-best-method-to-hide-files-folders-in-windows-without-using-3rd-party-utilities/ и сопутствующую статью : http://www.askvg.com/all-kinds-of-restrictions-for-windows-2000-xp-2003-and-vista/, в частности пункт 4. Конечно, проблема в том, что у пользователя может возникнуть законная необходимость когда-нибудь увидеть скрытый файл.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .