PowerShell utilise la forme courte 8.3 pour env:Temp
Aidez-moi à gérer la variable d'environnement PowerShell.
J'avais appris que PowerShell avait une syntaxe spéciale pour accéder aux valeurs des variables d'environnement système. J'ai donc essayé d'exécuter:
$env:Temp
Dans la console PowerShell 6.2.4 sous Windows 10. La sortie est étrange:
C:UsersOD42B~1.BORAppDataLocalTemp
Mon nom d'utilisateur Windows est raccourci au formulaire 8.3.
Le problème est que je ne peux pas utiliser la commande cd $env:temp
, elle affiche l'erreur suivante:
cd : An object at the specified path C:UsersOD42B~1.BOR does not exist.
Mais je peut faire cd %temp%
dans le terminal cmd
.
J'ai essayé l'application Windows PowerShell (%SystemRoot%system32WindowsPowerShellv1.0powershell.exe
) mais cd $env:Temp
ne fonctionne pas non plus.
J'ai vérifié l'option de configuration de la variable d'environnement (Propriétés du système Variables d'environnement) et les variables TEMP
et TMP
sont affichées à l'aide du nom du dossier du profil de formulaire long, comme c:userso.borolongprofilenameAppDataLocalTemp
.
Comment puis-je faire fonctionner cd $env:Temp
pour un nom de profil non 8.3 dans le PowerShell?
UPD
-
La sortie PowerShell
get-childitem env:Temp
estC:UsersOD42B~1.BORAppDataLocalTemp
. -
Cmd
echo %temp%
la sortie est la mêmeC:UsersOD42B~1.BORAppDataLocalTemp
(maiscd %temp%
fonctionne dans le cmd). -
TEMP
la variable d'environnement dans l'interface utilisateur est définie correctement (la valeur affichée est commec:userso.borolongprofilenameAppDataLocalTemp
).Cependant la valeur
TEMP
est affichée comme%USERPROFILE%AppDataLocalTemp
lorsque j'essaie de modifierTEMP
à l'aide de l'interface utilisateur. -
PowerShell
get-childitem env:userprofile
affiche le nom complet commec:userso.borolongprofilename
(surprise).
UPD2
Je viens de vérifier PowerShell 7 rc2 mais le résultat est le même: cd $env:Temp
ne fonctionne pas.
UPD3
Merci de m'aider. J'ai trouvé la réponse fournie par le lien de commentaire @Smock:
cd (gi $env:temp).fullname