У меня есть схема папок, как (сильно упрощенная версия):
New Files
>Tools
>Scripts
Tested Files
>Tools
>Scripts
... и я хотел бы иметь ярлык в каждой папке от дочерних папок "Новые файлы" до дочерней папки "Проверенные файлы". Но эта папка может время от времени перемещаться, что приведет к поломке указанных ярлыков.
Есть ли способ сделать относительный ярлык для каждой папки? Я помню, как делал это в HTML, где вы могли задать путь, что-то вроде того, .../Files
чтобы вернуться к родителю, а затем в новую папку, но я не уверен, что это что-то поддерживает в ярлыках Windows?
PS: случай аналогичных относительных ярлыков, когда целью является файл, рассматривается в https://stackoverflow.com/questions/1169556/making-a-windows-shortcut-start-relative-to-where-the- папка-есть . В данном случае целью является папка.
../Files
с двумя точками? У меня не работает Windows, но я думаю, что она может работать.Ответы:
Вы можете использовать эту утилиту: Относительный .
По сути, он создает ярлык для «explorer.exe» с параметром вашего относительного пути с помощью щелчка правой кнопкой мыши (так же, как вы создаете обычный ярлык).
Конечно, вы можете сделать это вручную.
В вашем примере вы бы создали ярлык в «Новые файлы \ Инструменты» для
%windir%\explorer.exe "..\..\Tested Files\Tools"
Для этого вы можете использовать обычное контекстное меню «Создать / Создать ярлык» Windows и ввести указанную выше команду в поле «Введите местоположение элемента».
источник
%windir%\explorer.exe
перед относительным путем при создании стандартного ярлыка. Так что, если вы сделаете это вручную, вам вообще не понадобится Relative. (Вам просто нужно запомнить команду до вашего относительного пути)%windir%
пустым.Одним из возможных решений является использование однострочного пакетного файла вместо ярлыка, чтобы открыть все, что вы хотели открыть. Пакетный файл позволит вам использовать относительные пути внутри себя и будет иметь рабочий каталог, в котором находится пакетный файл.
Другой вариант -
cmd.exe
вместо этого запустить ярлык с того, что вы запускаете, а затем передать в качестве аргумента все, что вы запускаете.cmd.exe
%COMSPEC%
является переменной окружения точки к командной строке по умолчанию ./C
заставляет консоль закрываться после выполнения команды.источник
Этот трюк работает:
% COMSPEC% / C запускает "ваше exe-имя без пути"
пример
% COMSPEC% / C запускает winmine.exe
источник
%COMSPEC% /C "start GoogleChromePortable.exe -enableextensions -incognito"
начать с: [оставить пустым]Я использую аналогичное решение в шаблоне, который запускает мою среду веб-разработки (откройте каталог проекта, откройте браузер, запустите WAMP, запустите SCSS ...)
Я могу передать аргументы моему сценарию летучей мыши и т. Д., Это круто. Не забудьте поставить
/c
аргумент послеcmd.exe
источник
Вы можете использовать mklink . Это позволяет создавать символические ссылки, жесткие ссылки и ссылки в каталогах.
Если нет повышенного доступа, вы можете использовать / J
Для перемещения по всей структуре вы должны использовать команду xcopy . Например, если вся структура находится под контейнером :
ввод команды
создаст следующую структуру:
Ключ / b будет копировать символические ссылки, а не конвертировать их в папки.
источник
Ярлык может записать его местоположение в переменной и вызвать команду, используя переменную. Например, создайте ярлык «Дедушка» с целью:
Создайте командный файл «C: \ Here.bat» в одну строку:
Теперь, независимо от того, в какой папке находится Grandparent, при нажатии на нее открывается родительская папка родительской папки. Он даже работает с дедушкой в корневом каталоге.
Ваш пакетный файл мог использовать% HERE% при запуске чего-то другого, кроме explorer.exe. Или вместо Here.bat после && в целевом ярлыке вы можете вызвать программу, которая использует% HERE%.
В моей системе дедушка работает с & или &&.
источник
&&
выполняет следующий вызов только в том случае, если предыдущий вызов не вернул ошибку, хотя&
это не имеет значения. В этом случае не должно быть никакой разницы.Если вы оставите
'Start In'
поле пустым в свойствах ярлыка, ссылки будут относительно текущего рабочего каталога.Смотрите также https://stackoverflow.com/a/17951772/40961
источник
Вы можете создать переменную среды, которая содержит (относительный) путь к целевой папке или папке над ней в структуре файловой системы.
Пример:
Переменная среды:
% Dropbox% = "C: \ Users \ Пользователь 1 \ Dropbox"
Ярлык Цель:
"% Dropbox% \ Install \ Utilities \ file.exe"
Вы можете использовать команду DOS SETX для создания переменных окружения.
источник