J’ai un fichier autorun.inf
avec le contenu suivant sur mon disque dur externe:
[Autorun] Label=MasterSword
Cela marque mon disque dur externe une fois branché, MasterSword
. Je souhaite y stocker quelques scripts et les inclure dans mon $profile
pour qu’ils soient chargés au démarrage de PowerShell ou lors de la réinclusion du profil ( . $profile
) dans l’interpréteur.
Comme beaucoup le savent, l’utilisation d’une lettre de lecteur codée en dur pour les lecteurs externes peut conduire à modifier la référence à ces scripts de disque dur externes chaque fois que la lettre du lecteur change, entraînant ainsi l’inclusion de l’inclusion.
Donc, je suppose que j’ai deux questions:
Comment puis-je obtenir l’étiquette du lecteur qui a été défini dans le autorun.inf
?
Comment puis-je traduire l’étiquette de ce lecteur dans la lettre du lecteur afin de pouvoir référencer les scripts stockés?
J’ai fait un peu plus de recherches et j’ai trouvé ce petit extrait:
Pour répondre # 1:
$scriptDrive = Get-Volume -FileSystemLabel MasterSword
Pour répondre # 2:
$scriptDriveLetter = $scriptDrive.DriveLetter
Et ensemble, ils seraient:
$scriptDrive = Get-Volume -FileSystemLabel MasterSword $scriptDriveLetter = $scriptDrive.DriveLetter
Ou pour une autre interprétation:
$scriptDriveLetter = (Get-Volume -FileSystemLabel Mastersword).DriveLetter
Où la lettre de lecteur nécessaire est stockée dans $scriptDriveLetter
.
Tu pourrais essayer:
Get-PSDrive | Where-Object {$_.Description -eq "MasterSword"}
Cela retournera un object tel que:
Name : E Description : MasterSword Provider : Microsoft.PowerShell.Core\FileSystem Root : E:\ CurrentLocation : Scripts
Ainsi, en supposant que vos scripts se trouvent dans le dossier “Scripts”, vous pouvez les trouver avec:
$Root = (Get-PSDrive | Where-Object {$_.Description -eq "MasterSword"}).Root $Path = Join-Path $Root "Scripts"