Win10, embora eu espere que se aplique igualmente a partir do 7up.
se eu fizer eco, %USERPROFILE%
ele retornará uma letra de unidade C:\
~ Correto.
No entanto, minhas pastas Documentos, Imagens, Música, etc. estão na H:
unidade. De alguma forma, o Win10 "sabe" disso, porque redireciona para fora da C:
unidade.
No passado, eu costumava %USERPROFILE%
fazer referência a arquivos ao longo da árvore de pastas (por exemplo, em atalhos), mas agora que tenho um sistema de unidade dividida, não sei como fazer referência ao redirecionamento.
Alguma ideia?
Responder1
Abra uma janela do PowerShell e execute:
[Enum]::GetNames([Environment+SpecialFolder]) | ? {$_ -like "My*" } | % { $_ + ": " + [Environment]::GetFolderPath($_)}
se retornar algo como:
MyDocuments: H:\...
MyMusic: H:\...
MyVideos: H:\...
MyComputer:
MyPictures: H:\...
então alguém alterou a localização dessas pastas, você pode alterá-las novamente abrindo as propriedades dessas pastas no Explorador de Arquivos e clicando na Location
guia.
Para usar a localização correta MyDocuments
em um atalho, você pode usar:
explorer.exe shell:::{A8CDFF1C-4878-43be-B5FD-F8091C1C60D0}\folder1\folder2
isso abrirá H:\documents\folder1\folder2 no File Explorer.
Todas as pastas especiais possuem um GUID exclusivo, uma boa lista está emTenForums
Não acho que você possa usar esses GUIDs diretamente no cmd.exe
, mas no PowerShell você pode fazer:
cd $([Environment]::GetFolderPath('MyMusic'))
Responder2
Resolvi meu problema usando SETX
para criar duas novas variáveis de ambiente: myUSERPROFILE
e myHOMEDRIVE
. Eles são usados em atalhos que apontam para meus dados baseados em nuvem no OneDrive, Dropbox, GoogleDrive, etc.
CASO DE USO
O objetivo é abstrair os atalhos da máquina local para a generalidade de todas as máquinas nas quais trabalho.
Especificamente, eu tenho um SurfacePro 4, um desktop, um laptop (dedicado ao media center por meio de seu amplificador) e os laptops que os clientes me dão para trabalhar de vez em quando.
Cada um deles tem diferentesNomes de USUÁRIOeunidades domésticasdeterminado pelo lote da rede do cliente.
Nos meus desktops tenho 4 atalhos apontando para pastas na nuvem ~Imagens recebidas;Leitura;Referência rápida;Documentos recebidos. Os atalhos assumem a forma
"%myUSERPROFILE%\Documents\Dropbox (Work)\Incoming docs"
Qualquer atalho em que eu clicar, independentemente do computador em que estou, abre a pasta baseada na nuvem.
Soltar um arquivo na pasta de atalho o envia para o lugar certo.
Algumas das pastas possuem atalhos que apontam para os arquivos ou pastas em meus repositórios de dados.
A pasta Referência Rápida, por exemplo, possui atalhos para tudo, desde horários e horários até dados técnicos e protocolos de Clientes.
Todos eles permanecem permanentemente em seus vários repositórios de dados - existem mais de 3.500 PDFs apenas em minhas bibliotecas de tecnologia. (Eu também uso calibre para gerar metadados).
PROCESSO
crie as variáveis
Quando consigo trabalhar em uma nova máquina, este arquivo em lote é executado no modo Admin:
:: 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.
Um atalho típico na pasta Reading seria
"%OneDrive%\My Digital Editions\~ Knowledge\Consultancy\Business\Big Data_CDI_MDM\Path-to-Predictive-Analytics-and-Machine-Learning.pdf"
Ou posso simplesmente colocar o arquivo na pasta conforme explicado acima e arquivá-lo no repositório apropriado (caminho da pasta) se achar que vale a pena mantê-lo.
Quando devolvo as máquinas clientes, excluo as duas variáveis de ambiente. . . claro!
crie as pastas de atalho
Eu mantenho uma pasta na nuvem com o arquivo em lote acima e domino os atalhos para esses atalhos de pasta.
Eles são simplesmente arrastados para a área de trabalho e soltos lá.
Como são apenas atalhos, penso neles como "pastas virtuais" ou "áreas de trabalho virtuais". Nenhum dado fica mais na área de trabalho. Se eu precisar de uma pasta especial (por exemplo, para um projeto de cliente), simplesmente crio um atalho para a pasta na nuvem e as variáveis de ambiente assumem o controle a partir daí.
Agora estou pronto para usar o novo computador.