Win10, хотя я ожидаю, что это применимо и к 7up.
если я выполню команду echo, %USERPROFILE%
то она вернет букву диска C:\
~. Это верно.
Однако мои папки Documents, Pictures, Music и т. д. находятся на H:
диске. Каким-то образом Win10 «знает» это, потому что перенаправляется с C:
диска.
Раньше я использовал %USERPROFILE%
ссылки на файлы по дереву папок (например, в ярлыках), но теперь, когда у меня разделенная дисковая система, я не знаю, как вместо этого ссылаться на перенаправление.
Есть идеи?
решение1
Откройте окно PowerShell и выполните:
[Enum]::GetNames([Environment+SpecialFolder]) | ? {$_ -like "My*" } | % { $_ + ": " + [Environment]::GetFolderPath($_)}
если он возвращает что-то вроде:
MyDocuments: H:\...
MyMusic: H:\...
MyVideos: H:\...
MyComputer:
MyPictures: H:\...
то кто-то изменил расположение этих папок, вы можете изменить их обратно, открыв свойства этих папок в Проводнике и щелкнув по вкладке Location
.
Чтобы использовать правильное расположение MyDocuments
в ярлыке, вы можете использовать:
explorer.exe shell:::{A8CDFF1C-4878-43be-B5FD-F8091C1C60D0}\folder1\folder2
это откроет H:\documents\folder1\folder2 в Проводнике.
Все специальные папки имеют уникальный GUID, хороший список можно найти по адресуДесятьФорумов
Я не думаю, что вы можете использовать эти GUID напрямую в cmd.exe
, но в PowerShell вы можете сделать следующее:
cd $([Environment]::GetFolderPath('MyMusic'))
решение2
Я решил свою проблему, SETX
создав две новые переменные среды: myUSERPROFILE
и myHOMEDRIVE
. Они используются в ярлыках, которые указывают на мои облачные данные на OneDrive, Dropbox, GoogleDrive и т. д.
ПРИМЕР ИСПОЛЬЗОВАНИЯ
Цель состоит в том, чтобы абстрагировать ярлыки от локальной машины к общим для всех машин, на которых я работаю.
В частности, у меня есть SurfacePro 4, настольный компьютер, ноутбук (выделенный для медиацентра через его усилитель), а также ноутбуки, которые клиенты дают мне для работы время от времени. У
каждого из них есть разныеИмена ПОЛЬЗОВАТЕЛЕЙидомашние дискиопределяется клиентской сетью.
На моих рабочих столах есть 4 ярлыка, указывающих на папки в облаке ~Входящие изображения;Чтение;Краткий справочник;Входящие документы. Ярлыки имеют вид
"%myUSERPROFILE%\Documents\Dropbox (Work)\Incoming docs"
Какой бы ярлык я ни нажал, независимо от того, за каким компьютером я нахожусь, открывается облачная папка.
Перетаскивание файла в папку ярлыка отправляет его в нужное место.
Некоторые из папок сами по себе имеют ярлыки, указывающие на файлы или папки в моих хранилищах данных.
Например, папка Quick Reference имеет ярлыки на все, от расписаний и графиков до технических данных и клиентских протоколов.
Все они остаются постоянно в своих различных хранилищах данных - в моих технических библиотеках около 3500 одних только PDF-файлов. (Я также использую calibre для генерации метаданных).
ПРОЦЕСС
создайте переменные
Когда я получаю новую машину для работы, этот пакетный файл запускается в режиме администратора:
:: setEnvVariables.bat
:: Step 1, set variables
echo Enter the home drive, default is %HOMEDRIVE%
SET /P localHOMEDRIVE=%HOMEDRIVE%
echo Enter the User prefix, default is %USERPROFILE%
SET /P localUSERPROFILE=%USERPROFILE%
SETX myHOMEDRIVE localHOMEDRIVE
SETX myUSERPROFILE localUSERPROFILE
echo: Step 2. check that they work
echo: =====: flip drives, land on home data drive
C:
echo: =====: directory of folders in root C:\ drive
DIR /b /ad
PAUSE
%myHOMEDRIVE%
cd\
echo: =====: directory of folders in root data drive
DIR /b /ad
PAUSE
cd %myUSERPROFILE%\Documents
echo: =====: directory of folders in Documents folder
DIR /b /ad
PAUSE
echo: ====: directory of folders in Dropbox folder
cd %myUSERPROFILE%\Documents\Dropbox (Personal)
DIR /b /ad
PAUSE
:: ...etc all the other cloud based repositories.
Типичный ярлык в папке «Чтение» будет выглядеть так:
"%OneDrive%\My Digital Editions\~ Knowledge\Consultancy\Business\Big Data_CDI_MDM\Path-to-Predictive-Analytics-and-Machine-Learning.pdf"
Или я могу просто поместить файл в папку, как описано выше, и поместить его в соответствующий репозиторий (путь к папке), если я считаю, что его стоит сохранить.
Когда я возвращаю клиентские машины, я удаляю две переменные окружения... конечно!
создать папки ярлыков
Я держу папку в облаке с указанным выше пакетным файлом в ней и создаю сочетания клавиш для этих папок.
Их просто перетаскивают на рабочий стол и оставляют там.
Поскольку это всего лишь ярлыки, я думаю о них как о "виртуальных папках" или "виртуальных рабочих столах". Никакие данные больше не находятся на рабочем столе. Если мне нужна специальная папка (например, для клиентского проекта), я просто создаю ярлык для папки в облаке, и переменные среды берут на себя управление оттуда.
Теперь я готов приступить к работе за новым компьютером.