标题: [其他] [已解决]批处理怎样把wmic命令的值保存到变量? [打印本页]
作者: zhaosiyu2010 时间: 2018-12-3 11:37 标题: [已解决]批处理怎样把wmic命令的值保存到变量?
如题,
wmic path win32_diskdrive get size>aa
这样输出的文档的时候 在命令提示符里 没问题
但是在bat里 不知道怎么就不行了。会不停的往AA里写下面这句话
C:\Users\Admin\Desktop>wmic DISKDRIVE get deviceid,Caption,size,InterfaceType
for /f %i in ('wmic path win32_diskdrive get size^| findstr ^^[0-9]') do set a=%i
这个也不行,在bat里打不开
以下语句 可以直接获取到磁盘0的大小
for /f %%a in ('wmic DiskDrive where "DeviceID like '%%PHYSICALDRIVE0'" get Size /value^|find "="') do set "%%a"
echo;磁盘0的大小为:=%Size%
作者: flashercs 时间: 2018-12-3 12:13
- wmic path win32_diskdrive get deviceid,serialnumber,size
复制代码
作者: zhaosiyu2010 时间: 2018-12-3 13:58 标题: RE: 批处理中怎么分别获取每个硬盘的容量?
回复 2# flashercs
怎么把得到的结果保存到变量。。。
作者: jiavip 时间: 2018-12-7 05:19
- for /f "tokens=1,2,3" %%i in ('wmic path win32_diskdrive get deviceid^,serialnumber^,size^|find /i"\\.\"') do echo %%k
复制代码
%%K 就是变量
作者: zhaosiyu2010 时间: 2019-2-18 11:24
回复 4# jiavip
这个%%K 怎么用啊 ?
怎么能传给 set a 啊
作者: zhaosiyu2010 时间: 2019-2-18 12:35
有没有高手 麻烦解答下
作者: lanfogz 时间: 2019-2-18 13:33
for /f %i in ('wmic path win32_diskdrive get size^| findstr ^^[0-9]') do set a=%i
作者: zhaosiyu2010 时间: 2019-2-18 13:37
[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost
作者: zhaosiyu2010 时间: 2019-2-18 19:44
回复 7# lanfogz
不行啊 在命令提示符里可以 在BAT里就打不开啊
作者: 1332019995 时间: 2019-2-18 21:33
回复 9# zhaosiyu2010
把%i换成%%i,cmd下用%i,bat下用%%i
作者: zhaosiyu2010 时间: 2019-2-19 12:20
本帖最后由 zhaosiyu2010 于 2019-2-19 12:28 编辑
回复 10# 1332019995
谢谢 。。。可以用
wmic path win32_diskdrive get deviceid,serialnumber,size>a.txt 这句在bat里 应该怎么改可以使用呢
for /f %%i in ('wmic path win32_diskdrive get size^| findstr ^^[0-9]') do set a=%%i
然后这句 怎么判断 哪个值是磁盘0的 或者只获取磁盘0的 大小。。。
感谢。。。
作者: lanfogz 时间: 2019-2-20 09:29
本帖最后由 lanfogz 于 2019-2-25 09:40 编辑
- @echo off
-
- :: 保存磁盘信息到文件
- wmic path win32_diskdrive get deviceid,serialnumber,size>a.txt
- type a.txt
-
- :: 保存磁盘0的大小到变量
- set disk0_size=
- for /f %%i in ('wmic path win32_diskdrive where "deviceid like '%%0'" get size^| findstr ^^[0-9]') do set disk0_size=%%i &goto :break
- :break
- echo 磁盘0大小:%disk0_size%
复制代码
作者: lanfogz 时间: 2019-2-20 09:50
本帖最后由 lanfogz 于 2019-2-25 09:45 编辑
获取磁盘的数量、所有磁盘的大小- @echo off & setlocal enabledelayedexpansion
-
- set disk_count=0
- for /f "tokens=2" %%i in ('wmic path win32_diskdrive get deviceid^,size^| findstr ^^[0-9] ^|sort') do (
- set disk!disk_count!_size=%%i
- set/a disk_count+=1
- )
-
- echo 磁盘数量:%disk_count%
- for /l %%i in (0, 1, %disk_count%) do if %%i lss %disk_count% (echo 磁盘%%i大小:!disk%%i_size!)
复制代码
作者: zhaosiyu2010 时间: 2019-2-20 17:45
回复 13# lanfogz
这个不错 。。。。再帮个忙呗 我只要磁盘0的值就行了
怎么能把值传给 set a
在for里面 好像不一样
作者: lanfogz 时间: 2019-2-21 09:24
回复 14# zhaosiyu2010
见12楼
作者: zhaosiyu2010 时间: 2019-2-21 15:41
回复 15# lanfogz
感谢 感谢。。。
作者: zhaosiyu2010 时间: 2019-2-23 13:32
回复 15# lanfogz
兄die,帮忙看下,变量得到在并不是disk0的……怎么办
作者: lanfogz 时间: 2019-2-25 09:36
本帖最后由 lanfogz 于 2019-2-25 09:45 编辑
代码已调整,见#12 #13
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |