gpt4 book ai didi

powershell - 如何使用 PowerShell 处理 diskpart 命令的输出

转载 作者:行者123 更新时间:2023-12-02 02:52:31 25 4
gpt4 key购买 nike

我正在尝试从 diskpart 命令输出中捕获卷号。目前我是这样做的:

使用批处理脚本:

@echo off
set VOLNO=''
set DRIVE=C
for /f "tokens=2,3" %%a in ('echo list volume ^| diskpart') do (
if %%b==%DRIVE% set VOLNO=%%a
)
echo Volume No. for C Drive is: %VOLNO%

输出:

Volume No. for C Drive is: 2

Using PowerShell:

$dp = "list volume" | diskpart | ? { $_ -match "^  [^-]" }> 
$dp

输出:

Volume ###  Ltr  Label        Fs     Type        Size    Status    InfoVolume 0     E                       DVD-ROM        0 B  No MediaVolume 1         System Rese  NTFS   Partition   350 MB  Healthy   SystemVolume 2     C                NTFS   Partition    59 GB  Healthy   BootVolume 3     D   New Volume   NTFS   Partition    49 GB  Healthy

我想获取卷号,例如对于使用 PowerShell 的变量,C:\是 2。

最佳答案

调整您的正则表达式,以便您可以通过捕获组提取所需的信息。我通常建议根据提取的信息构建自定义对象,以促进进一步处理。

像这样的事情应该做你想做的:

$drive = 'c'

'list volume' | diskpart | Where-Object {
$_ -match 'Volume (\d+)\s+([a-z])\s+'
} | ForEach-Object {
New-Object -Type PSObject -Property @{
'DriveLetter' = $matches[2]
'VolumeNumber' = [int]$matches[1]
}
} | Where-Object {
$_.DriveLetter -eq $drive
} | Select-Object -Expand VolumeNumber

关于powershell - 如何使用 PowerShell 处理 diskpart 命令的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51480547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com