В Windows 7, как я могу проверить, является ли файл символической ссылкой или нет, является ли папка соединением или нет, и как я могу проверить, куда они указывают (в случае, если они являются символической ссылкой / соединением). И в проводнике, и в командной строке.
Очень важно иметь способ сделать это из командной строки, чтобы знать, как дублировать символические ссылки на другом компьютере, когда вы хотите создать точную копию дерева папок.
Если я щелкну правой кнопкой мыши по файлу и выберу «Свойства», я не смогу найти никаких признаков того, что это символическая ссылка.
windows-7
command-line
symbolic-link
BearCode
источник
источник
dir /a
затем нажмите Enter. Если вы не включите / a, Windows не перечислит точки соединения. Вы можете попробовать разницу междуdir
иdir /a
по каталогу\Users\YourUsername
Скопировано из StackOverFlow , я просто использовал эту строку, и она работает
fsutil reparsepoint query "folder name" | find "Symbolic Link" >nul && echo symbolic link found || echo No symbolic link
Пояснение :
Из MSDN о FSUtil: выполняет задачи, связанные с таблицей размещения файлов (FAT) и файловыми системами NTFS, такие как управление точками повторной обработки, управление разреженными файлами или отключение тома. Если он используется без параметров, fsutil отображает список поддерживаемых подкоманд.
Для нашего использования, мы просто заботимся о том, чтобы она выводила строку с «символической связью», если она символическая, то, что мы затем
find
, и если этоfind
удается, мы выводим одну вещь, если нет, мы выводим что-то другое.Примечания :
источник
Используя PowerShell, по крайней мере в ОС Windows вы можете найти символические ссылки в любом каталоге, например:
Более краткая альтернатива - использовать
Get-ChildItem
псевдонимls
:И вы можете получить соответствующую информацию по символической ссылке, выполнив одно из следующих действий:
Получить элемент файла и вывести его свойство Target . Цель - «значение» символической ссылки. Кроме того, сигнатуры методов или команд для создания символических ссылок при сопоставлении между операционными системами, имена аргументов: 'target', 'path' и / или 'value' могут иметь значения, отличные от сигнатуры другого метода в другой ОС.
Получить элемент файла и вывести его свойство LinkType . Элемент со значением LinkType SymbolicLink означает, что он, ну, в общем, символический.
Получить элемент файла и вывести его свойство Mode . Элемент
l
в значении Mode указывает, что это символическая ссылка.Получить элемент файла и вывести его свойство Attributes . Элемент, связанный со значением ReparsePoint, может указывать на символическую ссылку.
источник
Не используйте,
fsutil
чтобы проверить, является ли элемент символической ссылкой или нет. Во-первых, потому что errorlevel имеет ошибки, поэтому иногда он остается равным 0, а настоящая папка рассматривается как символическая ссылка. Уровень ошибок не может быть доверенным.Проблема в
find
том, чтоfind "Symbolic Link"
это возможно на английском языке, но не на других языках.Хороший способ - поиск по атрибутам:
Атрибуты, полученные с% a, являются "drahscotlep", а "l" - для символической ссылки.
источник
Вот скрипт cygwin bash для сохранения символических ссылок, добавления ваших любимых папок в первую строку
источник
В Powershell:
источник
все кредиты @SecurityAndPrivacyGuru , [cmd]
полный пакетный скрипт / функция, которая читает символическую ссылку {| s в папке} и выводит список с ними и их целевые пути
источник
Если вы действительно хотите использовать fsutil, вы можете использовать обе техники, чтобы предотвратить сбой в работе. (Я использую ver> nul для сброса уровня ошибки)
источник