对于在Windows命令行界面下运行的备份脚本,我想获取某个硬盘卷(存储在variables%lookfor% )的%lookfor% 。 这是我到目前为止的代码。
set lookfor=yourvolume for /f "tokens=1,2,*" %%D in ('wmic logicaldisk get VolumeName^,Caption^') Do ( if %%F equ "" ( @echo %%D has the VolumeName %%E if "%%E" equ "%lookfor%" ( set letter=%%D ) ) else ( @echo %%D has the VolumeName %%E %%F if "%%F" equ "%lookfor%" ( set letter=%%D ) ) ) echo The Volume %lookfor% has the driveletter %letter%
将驱动器号分配给可变驱动器号显然会失败。 我怎样才能解决这个问题?
如何获得从0到100的标量系统音量水平?
使用Python 3.5获得扬声器音量
如何在Windowspath中使用卷标?
Windowsbatch file获取C:驱动器的总空间和可用空间
使用WMIC的where参数来指定要查找的内容:
for /f %%a in (' wmic logicaldisk where "VolumeName='%lookfor%'" get Caption ^| find ":" ') do set letter=%%a
你没有向我们展示lookfor什么样的东西,也不知道你们的输出是什么。 这是我的…
Caption VolumeName
C:
M:xpc
N:
病人:
问:
R:系统保留
U:
五:
W:系统保留
你的线
if %%F equ "" (
是不正确的,因为%%F永远不能与""你需要
if "%%F" equ "" (
因此,第一个if的else分支总是被采用。
你的
if "%%F" equ "%lookfor%" (
有趣的是,正确的语法。 我们不知道你在找什么,但是使用上面的例子,设置应该是:
%% D | %% E | %% F
Caption | VolumeName |
C:| |
M:| xpc |
N:| |
P:| |
问:| |
R:|系统|保留
U:| |
V:| |
W:|系统|保留
所以%%F可能不是你所期望的。
也许
for /f "tokens=1,*" %%D in ( 'wmic logicaldisk get VolumeName^,Caption^' ) Do (echo D=%%DE=%%E)
会更好的为你的目的。
和
if /i ....
使比较不区分大小写。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。