我想在特定的外部驱动器上编写一些文件操作脚本,这不能发生在任何其他驱动器(备份)上。驱动器号不是可靠的标识符,因此我通过以下方式找到了卷 ID 和引用使用此卷 ID 的驱动器的 UNC 路径mountvol
:
\\?\Volume{77013d6b-100000}
(为了清晰起见被截断)
虽然我可以使用访问子目录
Set-Location -LiteralPath \\?\Volume{77013d6b-100000}\path-that-exists
我不能简单地转到磁盘的根目录:
Set-Location -LiteralPath \\?\Volume{77013d6b-100000}
说它找不到路径,因为它不存在。
如何仅使用其卷 ID 直接导航到外部硬盘的根目录?
这有点尴尬,因为没有文件夹名称的路径只是卷 ID,而 powershell 的文件系统提供程序无法将其正确解析到某个位置。您可以使用卷 ID 来查找其当前的安装盘符,如下所示:
如果操作系统保持不变,GUID 不会更改,但如果您计划在另一台 PC 上使用该驱动器和脚本,则需要从物理磁盘的属性开始。我建议使用序列号(如果有),但名称或尺寸也可以正常工作:
另一种方法:
检查 SN
(GWMI Win32_LogicalDisk).VolumeSerialNumber
检查描述,
(PSDrive).Description
Get-WMIObject
有时gwmi
在 PS7 中为Get-CimInstance