批处理 - 修剪WMIC变量输出以供重用

时间:2018-01-25 10:22:21

标签: windows batch-file variables for-loop wmic

我希望有人可以提供帮助:)

我正在尝试

  • 将WMIC查询的输出变为变量
  • 通过删除最后一个字符(冒号)
  • 来操作此变量
  • 在我的脚本中重用这个剩余的字符

这是生成我需要使用的值的行:

for /f "skip=1" %%A in ('wmic logicaldisk where "Description='Removable Disk'" get name') do

通常,输出如下所示:

E:

现在我需要剪切此变量以仅获取驱动器“E”,我需要在脚本中重复使用。

我发现了this威胁,我希望这也是我问题的解决方案。 不幸的是,这对我不起作用,因为应用此输出完全为空。

我认为在将输出%% A写入变量时,我做错了。

我的代码目前看起来像这样:

@ECHO OFF
for /f "skip=1" %%A in ('wmic logicaldisk where "Description='Removable Disk'" get name') do (
echo.%%A
set drive=%%A
set drive=%drive:~0,-1%
echo.%drive%
)

此代码的输出为:

E:
:*:
:*:

有人知道我做错了什么吗? :)

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

有许多不同的方法可以解决wmic难看的行结尾问题。在你的情况下,它相对容易(你甚至不需要任何变量):

for /f "skip=1 tokens=2 delims==:" %%A in ('wmic logicaldisk where "DriveType='2'" get name /value') do echo %%A

我从Description='Removable Disk'切换到DriveType='2',因为输出与语言有关(德语为Description=Wechseldatenträger),22