我想检测计算机上是否只有一个分区或多个分区-但我只想查看物理驱动器上的内容。
我列出了驱动器,然后从解决方案中删除了一些垃圾:
# get all partitions from physical drives in the machine
$temp_string = [System.IO.DriveInfo]::getdrives() | Where-Object {$_.DriveType -eq 'Fixed'} | Select-Object -Property RootDirectory
# remove garbage strings like
# "RootDirectory"
# "-------------"
$drives = $temp_string -replace("RootDirectory","") -replace("-------------","") -replace("@{=","") -replace("}","")
# print out how many drives we have:
$drives
C:\
D:\
G:\
# print how many characters have a result
$drives.Length
3
我希望输出是所有分区的字符数,而不仅仅是一行。 即使您的分区多于1,它始终只显示3个字符。
答案 0 :(得分:2)
我认为您正在寻找的是Count
而不是length
。此外,PowerShell始终返回对象。这很容易使用。
我可以进入更多细节,例如:
这就是您真正需要的。
$temp_string.RootDirectory.name.count
答案 1 :(得分:1)
尝试使用WMI对象:
@(Get-WmiObject -Class Win32_logicaldisk | Where-Object {$_.DriveType -eq 3}).Count
从WMI:
0 = Unknown
1 = No Root Directory
2 = Removable Disk
3 = Local Disk
4 = Network Drive
5 = Compact Disc
6 = RAM Disk