Powershell 将驱动器号放入路径中 $DiskCount=(获取磁盘| Where对象{$\.BusType-eq“USB”})。Number.Count if($DiskCount-等式1){ 筛选器获取FirstResolvedPath{ (获取磁盘)| 其中对象{$\ BusType-eq“USB”}| 获取分区| 获取音量| 其中对象{$null-ne$\.DriveLetter} ).DriveLetter+':\'|连接路径-ChildPath$\uResolve-ErrorAction SilentlyContinue } “Folder\Folder\reg\Start.reg”|获取FirstResolvedPath }

Powershell 将驱动器号放入路径中 $DiskCount=(获取磁盘| Where对象{$\.BusType-eq“USB”})。Number.Count if($DiskCount-等式1){ 筛选器获取FirstResolvedPath{ (获取磁盘)| 其中对象{$\ BusType-eq“USB”}| 获取分区| 获取音量| 其中对象{$null-ne$\.DriveLetter} ).DriveLetter+':\'|连接路径-ChildPath$\uResolve-ErrorAction SilentlyContinue } “Folder\Folder\reg\Start.reg”|获取FirstResolvedPath },powershell,Powershell,如果文件存储在USB驱动器上,则路径是绝对路径,我们不知道USB磁盘字母,是否有其他方法获取文件的完整路径?我喜欢您的解决方案。我会用不同的方式写,你可以把它缩短一点: function Get-ResolvedPath { param ([Parameter(ValueFromPipeline=1)]$Path) Get-Disk |? BusType -ne USB | Get-Partition |% {Join-Path ($_.DriveLetter+":") $Path -R

如果文件存储在USB驱动器上,则路径是绝对路径,我们不知道USB磁盘字母,是否有其他方法获取文件的完整路径?

我喜欢您的解决方案。我会用不同的方式写,你可以把它缩短一点:

function Get-ResolvedPath {
  param ([Parameter(ValueFromPipeline=1)]$Path)
  Get-Disk |? BusType -ne USB | Get-Partition |% {Join-Path ($_.DriveLetter+":") $Path -R -EA Silent}
}

'Folder\Folder\reg\Start.reg' | Get-ResolvedPath | select -First 1

我喜欢你的解决方案。我会用不同的方式写,你可以把它缩短一点:

function Get-ResolvedPath {
  param ([Parameter(ValueFromPipeline=1)]$Path)
  Get-Disk |? BusType -ne USB | Get-Partition |% {Join-Path ($_.DriveLetter+":") $Path -R -EA Silent}
}

'Folder\Folder\reg\Start.reg' | Get-ResolvedPath | select -First 1

我知道-first 1,但如果某个文件(start.reg)位于“seecond”驱动器上,脚本将无法正确运行。所以我在RationalMethod的serach…@farag指定“无法正确运行”?我想不出这不起作用的原因。非常感谢!但是,如果我愿意的话,如何使用它(获取磁盘| Where Object{$$.BusType-eq“USB”}获取分区)。DriveLetter构造?@farag
(获取磁盘| Where Object{$$.BusType-eq“USB”}获取分区)。DriveLetter{Join Path($\+“:”)$Path-R-EA Silent}
,但我不明白你为什么要使用它。我知道-first 1,但是,如果某个文件(start.reg)位于“seecond”驱动器上,脚本将无法正确运行。所以我在RationalMethod的serach…@farag指定“无法正确运行”?我想不出这不起作用的原因。非常感谢!但是,如果我喜欢的话,如何使用它(获取磁盘| Where对象{$$$.BusType-eq“USB”}获取分区)。drivelett构造?@farag
(获取磁盘| Where对象{$$.BusType-eq“USB”}获取分区)。