ПРИМЕР ИСПОЛЬЗОВАНИЯ

ПРИМЕР ИСПОЛЬЗОВАНИЯ

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"

Или я могу просто поместить файл в папку, как описано выше, и поместить его в соответствующий репозиторий (путь к папке), если я считаю, что его стоит сохранить.
Когда я возвращаю клиентские машины, я удаляю две переменные окружения... конечно!

создать папки ярлыков

Я держу папку в облаке с указанным выше пакетным файлом в ней и создаю сочетания клавиш для этих папок.

Их просто перетаскивают на рабочий стол и оставляют там.

Поскольку это всего лишь ярлыки, я думаю о них как о "виртуальных папках" или "виртуальных рабочих столах". Никакие данные больше не находятся на рабочем столе. Если мне нужна специальная папка (например, для клиентского проекта), я просто создаю ярлык для папки в облаке, и переменные среды берут на себя управление оттуда.

Теперь я готов приступить к работе за новым компьютером.

Связанный контент