- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要使用 DISKPART 按标签在 WinPE 中选择一个磁盘。我找到了这个,但我认为它已经过时了:
@Echo %dbg%Off
::
:: Find External drive and set it active
:: Lists Disk Information using Diskpart
::
SetLocal EnableDelayedExpansion
:: Type the frst 11 characters of the label of the drive here.
Set _FindLabel=Recovery
Call :_InitVars "%_FindLabel%"
"%SystemRoot%\system32\FSUTIL.exe">Nul 2>&1||Goto _NotAdmin
Echo.
Echo.Please wait, gathering info on the installed drives
Echo.
>"%_Dscr1%" Echo.List disk
For /F "Tokens=2" %%I In ('Diskpart /S "%_Dscr1%"^|Findstr /I /R /C:"Disk [0-9]"') Do (
(Echo.Select Disk %%I
Echo.Detail Disk)>>"%_OFile1%"
)
For /F "Tokens=1,2,3*" %%I In ('Diskpart /S "%_OFile1%"^|Findstr /I /R /C:"Disk [0-9]" /C:"Volume [0-9]"') Do (
If /I %%I==Disk (
Set _Tmp=%%J:
) Else (
Set _Label=%%L
Set _Label=!_Label:~,11!
>>"%_OFile2%" Echo.!_Tmp!%%J:!_Label!
))
If Exist "%_OFile1%" Del "%_OFile1%"
For /F "Usebackq Tokens=1-3 Delims=:" %%I In ("%_OFile2%") Do (
Set _Label=%%K
Set _Label=!_Label:~,11!
If "!_Label!"=="%_FindLabel%" (Set _Disk=%%I) & (Set _Label=%%K) & Goto _FDisk
>>"%_OFile1%" Echo.Volume %%J on Disk %%I has the Label %%K
)
Echo.
Echo.There is no drive connected that has the label of "%_FindLabel%"
Echo.These are the currently connected volumes:
Type "%_OFile1%"
:_Exit
Echo.
Pause
Goto _Cleanup
:_FDisk
(Echo.Select disk %_Disk%
Echo.Select Partition 1
Echo.Active)>"%_Dscr1%"
Diskpart /S "%_Dscr1%"
:_Cleanup
For %%I In ("%_Dscr1%" "%_OFile1%" "%_OFile2%") Do Del %%I>Nul 2>&1
Goto :EOF
::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Subroutines
::::::::::::::::::::::::::::::::::::::::::::::::::::::
:_NotAdmin
Ver|Findstr /I /C:"Version 5">Nul
If %Errorlevel%==0 (Set _Tmp1=5) & (Set _Tmp=a Computer Administrator account)
Ver|Findstr /I /C:"Version 6">Nul
If %Errorlevel%==0 (Set _Tmp1=6) & (Set _Tmp=an Elevated Command Prompt)
Echo.
Echo.This program must be run from %_Tmp%.
If %_Tmp1%==6 Echo.Please Right click the file, then click Run as Administrator
Echo.Exiting program
Goto _Exit
:_InitVars
For /F "Tokens=1 Delims==" %%I In ('Set _ 2^>Nul') Do Set %%I=
Set _Dscr1=%temp%\dpscr1.txt
Set _OFile1=%temp%\_OFile1.txt
Set _OFile2=%temp%\_OFile2.txt
Set _FindLabel=%~1
Set _FindLabel=%_FindLabel:~,20%
Call :_Cleanup
当我运行它时,它返回:
Please wait, gathering info on the installed drives
There is no drive connected that has the label of "Recovery"
These are the currently connected volumes:
Volume 1 on Disk 0 has the Label NTFS Part
Volume 2 on Disk 0 has the Label NTFS Part
Volume 3 on Disk 1 has the Label WINPE
它显示的是 Fs(文件系统),而不是标签。
Diskpart 输出(列表卷)
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- --------
Volume 0 D USBBOOT UDF DVD-ROM 329 MB Healthy
Volume 1 Windows NTFS Partition 40 GB Healthy
Volume 2 Recovery NTFS Partition 19 GB Healthy
Volume 3 Z WINPE FAT32 Removable 7632 MB Healthy
不确定如何修改它以使其选择标签列。
最佳答案
由于 Diskpart 输出的某些行(list volume
,列 ltr
)中缺少有效的驱动器号,因此第 19 行中的标记
For /F "Tokens=1,2,3*" %%I In ('Diskpart /S "%_OFile1%"^|Findstr /I /R /C:"Disk [0-9]" /C:"Volume [0-9]"') Do (
显示如下(我们现在有罪魁祸首):
%%I %%J %%K %%L
Volume 0 D USBBOOT UDF DVD-ROM 329 MB ...
Volume 1 Windows NTFS Partition 40 GB Healthy
Volume 2 Recovery NTFS Partition 19 GB Healthy
Volume 3 Z WINPE FAT32 Removable 7632 MB ...
因此您可以在脚本中使用下一段代码(而不是第 19..26 行):
For /F "Tokens=1*" %%I In ('Diskpart /S "%_OFile1%"^|Findstr /I /R /C:"Disk [0-9]" /C:"Volume [0-9]"') Do (
If /I %%I==Disk (
Set _Tmp=%%J:
) Else (
Set _Label=%%J
Set _Label=!_Label:~10,11!
>>"%_OFile2%" Echo.!_Tmp!%%J:!_Label!
))
注意此更改会干扰 _Tmp
变量!
关于batch-file - diskpart 按磁盘标签选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26943631/
我需要使用 DISKPART 按标签在 WinPE 中选择一个磁盘。我找到了这个,但我认为它已经过时了: @Echo %dbg%Off :: :: Find External drive and se
我有以下代码,在 DskPrt1.txt assign letter= 的最后一行之前都可以正常工作。该文件按应有的方式写入。在下拉列表中,我选择一个驱动器盘符,将所选盘符发送到 FILE fp,将其
我在格式化笔式驱动器时需要读取 diskpart 的输出。这是我在后台运行的格式化代码。 QString exePath = "diskpart.exe"; QString arguments = "
我想使用 Diskpart 命令行实用程序对用户隐藏驱动器。 我使用删除字母命令,驱动器变为隐藏。 但是我想在用 C 编写的程序中使用该驱动器的数据。 我该怎么做或者有可能吗? 我只想对 USB 闪存
我想将 diskpart 命令的输出写到一个文件中,例如,像这样 LIST PARTITION >c:\output.txt 我该怎么做? 最佳答案 您可以使用 diskpart 的 /s 选项来执行
我试图通过用通过管道发出的命令替换它来消除用于自动化 diskpart 的临时脚本文件(即 diskpart/s scriptFile),但是我似乎无法弄清楚如何检测 diskpart 何时抛出错误.
在尝试删除所有分区时,我正在尝试开发一个批处理文件来运行和删除 Windows 7 中的隐藏分区。通常我会在命令提示符窗口中逐行执行此操作,但我试图弄清楚如何创建批处理文件来运行并加快此过程。 这是我
在 DISKPART.EXE ,当多个挂载点分配给一个卷时,我会得到信息。在图片中我们看到 Drive G: 也可以使用 D:\SQL\MSSQL13.MSSQLSERVER\DATA\或 D:\Bl
我正在尝试从 diskpart 命令输出中捕获卷号。目前我是这样做的: 使用批处理脚本: @echo off set VOLNO='' set DRIVE=C for /f "tokens=2,3"
我正在编写一个程序,它需要解析 Windows 命令“diskpart”的输出结果,特别是在用 VB.NET 解析磁盘和卷信息(使用“list disk”和“list volume”)时 我设法使用
因此,在深入研究现有脚本时,我注意到 Windows 列出分区和卷的方式有所不同。有人可以向我解释我所看到的吗?仅仅是diskpart和WMI的区别吗? linux 怎么看这些? C:\WINDOWS
我熟悉 VolumeSerialNumber,我需要与 diskpart 中所示相同的磁盘 ID: WD My Passport 0740 USB 设备磁盘 ID:08B29B51类型 : USB状态
磁盘部分“myScript.txt”: select disk 1 convert dynamic noerr select disk 2 convert dynamic noerr create v
我有一个安装 Windows 镜像的 C# 应用程序。我必须在用户界面上选择系统将复制到的磁盘(C: 或 D: 或...)。为此,没关系。 然后我必须格式化磁盘。我必须使用 diskpart.exe
我正在尝试编写一个批处理文件来删除分配给没有文件系统的分区的驱动器号。我无法使用 wmi,因为它正在 WinPE 恢复环境中使用。 DISKPART> list volume Volume ###
在我的 Azure 角色中,我想要安装 VHD - 大致相当于以下 diskpart 命令: vdisk select VhdFilePath vdisk attach This answer解释如何
我正在尝试创建批处理文件以打开/关闭驱动器的只读模式。 我创建了两个调用 diskpart 的批处理文件,以及两个包含要传递给 diskpart 的命令的文本文件。 当我单独运行 diskpart 命
我是一名优秀的程序员,十分优秀!