我们如何通过PowerShell 5.0中的标签获取驱动器?

我有一个autorun.inf文件与我的外部硬盘驱动器上的以下内容:

 [Autorun] Label=MasterSword 

一旦MasterSword插入,我的外部硬盘将被标记。 我想在其上存储一些脚本,并将它们包含在$profile以便在PowerShell启动时或在configuration文件重新包含. $profile. $profile )时加载它们。

众所周知,每当驱动器盘符发生更改时,对外部驱动器使用硬编码驱动器盘符可能会导致更改对这些外部硬盘驱动器脚本的引用,从而导致包含失败。

所以我想我有两个问题:

  1. 如何获取autorun.inf中设置的驱动器标签?

  2. 如何将驱动器标签转换为驱动器号,以便我可以参考存储在其上的脚本?

我做了一些更多的研究,并提出了这个小小的片段:

回答#1:

 $scriptDrive = Get-Volume -FileSystemLabel MasterSword 

回答#2:

 $scriptDriveLetter = $scriptDrive.DriveLetter 

一起,他们将是:

 $scriptDrive = Get-Volume -FileSystemLabel MasterSword $scriptDriveLetter = $scriptDrive.DriveLetter 

或换另一种解释:

 $scriptDriveLetter = (Get-Volume -FileSystemLabel Mastersword).DriveLetter 

必要的驱动器号存储在$scriptDriveLetter

你可以尝试:

 Get-PSDrive | Where-Object {$_.Description -eq "MasterSword"} 

这将返回一个对象,如:

 Name : E Description : MasterSword Provider : Microsoft.PowerShell.Core\FileSystem Root : E:\ CurrentLocation : Scripts 

因此,假设您的脚本位于“脚本”文件夹中,您可以通过以下方式找到它们:

 $Root = (Get-PSDrive | Where-Object {$_.Description -eq "MasterSword"}).Root $Path = Join-Path $Root "Scripts"