如何删除 wmic 命令的最后一个空行?

dur*_*rin 5 windows batch command-line

在一个批次中,我想使用:

FOR /F "usebackq skip=1" %I IN (wmic datafile where Name^="D:\\TOTO.EXE" get Version) DO (ECHO %I)
Run Code Online (Sandbox Code Playgroud)

并且想要限制 ECHO,而不是ECHO is on.最后一行是空的。

我怎样才能做到这一点?

Dav*_*ill 4

我不想让ECHO最后一行为空

FOR /F "usebackq skip=1" %I IN (wmic datafile where Name^="D:\\TOTO.EXE" get Version) DO (ECHO %I)
Run Code Online (Sandbox Code Playgroud)

要使上述内容在批处理文件中工作,您需要更改一些内容:

  1. 将每个 single 替换%为 double %%

  2. (`)在 执行的命令周围添加反引号for

  3. 通过管道传输|命令wmicfindstr /r /v "^$"删除空行(这将删除输出ECHO is on.

将它们放在一起,使用以下批处理文件 (test.cmd):

@echo off
setlocal
for /f "usebackq skip=1" %%i in (`wmic datafile where Name^="D:\\TOTO.EXE" get Version ^| findstr /r /v "^$"`) do (echo %%i)
endlocal
Run Code Online (Sandbox Code Playgroud)

您将得到单行输出,类似于以下内容:

F:\test>test
6.1.7600.16385
Run Code Online (Sandbox Code Playgroud)