batch-file - WMIC 上的无效动词获取变量
问题描述
我试图将主硬盘序列号获取到echo
稍后要编辑的变量。
我已经使用了它并且它有效:
for /f "tokens=2 delims== " %%k in ('WMIC path win32_physicalmedia get serialnumber /value') do (for /f "delims=" %%l in ("%%k") do set "SerialNumber=%%l")
但是,它只做最后一个序列号,我想得到主序列号。
如果我使用这个命令,
"wmic path win32_physicalmedia where tag='\\\\.\\PHYSICALDRIVE0' get serialnumber /value"
然后我只得到所需的序列号。
问题是当我尝试修改工作代码时,运行 bat 时出现错误:
无效的动词。
努力上班:
for /f "tokens=2 delims== " %%k in ('wmic path win32_physicalmedia where tag='\\\\.\\PHYSICALDRIVE0' get serialnumber /value') do (for /f "delims=" %%l in ("%%k") do set SerialNumber=%%l)
错误:
无效动词
如果我只运行:
wmic path win32_physicalmedia where tag='\\\\.\\PHYSICALDRIVE0' get serialnumber /value in CMD
我得到以下输出:
SerialNumber= WD-WCC2E1XJADRT
所以我知道该命令有效。
空格是否在中都没关系,我只想要=
. 我在支持 WMIC 的 WINPE 中执行此操作,因此不能选择 Powershell。
总剧本
@echo OFF
setlocal
for %%v in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do if exist %%v:\drives.txt set w=%%v
for /f "tokens=2 delims== " %%k in ('wmic path win32_physicalmedia where tag='\\\\.\\PHYSICALDRIVE0' get serialnumber /value)') do (for /f "delims=" %%l in ("%%k") do set SerialNumber=%%l)
for /F "tokens=2" %%i in ('date /t') do set "Date=%%i"
echo %SerialNumber%,%Date% >> %w%:\drives.txt
解决方案
如果您将命令修改为:
WMIC Path Win32_PhysicalMedia Where "Tag='\\\\.\\PHYSICALDRIVE0'" Get SerialNumber /Value
将=
受到保护。
试试这样:
@Echo Off
For /F "Tokens=1*Delims==" %%A in ('
WMIC Path Win32_PhysicalMedia Where "Tag='\\\\.\\PHYSICALDRIVE0'" Get SerialNumber /Value 2^>Nul
') Do For %%C In (%%B) Do Set "SerialNumber=%%C"
Echo [%SerialNumber%] & Pause
我添加了最后一行只是为了显示任何返回的变量和值。
推荐阅读
- python - 在数据框条目中搜索字符串并将其复制 python
- asp.net - 如何使用 LINQ 从 Datatable 中获取过滤后的数据集
- ms-access - 使用 Select Distinct 并编辑第二列中的输出
- c# - 类库自动添加到 Visual Studio 7.5.2 mac os X 中的其他项目
- html - google siganute 使一张图片有两个链接
- selenium - 无法识别元素
- terminal - Install mcrypt on mac php7.2 MAMP
- javascript - JavaScript Cannot read property 'classList' of undefined Error
- node.js - Passport authentication middleware res not defined
- r - Adding timestamp to data frames with different row number in R