如何从for循环中的文本文件中删除新行(CMD / Batch)

时间:2017-02-03 20:50:49

标签: batch-file cmd

我的目标是使用for循环创建的文本文件作为另一个for循环的变量的输入。但是,创建的初始文本文件末尾有一个新的行/空格,并在读取所述文本文件时被声明为变量。

以下代码正在创建一个文本文件......

for /F "Skip=1 Delims=:" %%A In ('WMIC LogicalDisk Get Caption') do @echo(%%A>> "EXAMPLE DIRECTORY\partitions.txt"

此文本输出文件看起来像

A
C
D
(empty line)

然后我使用这个文本文件输入另一个命令,其中每个行都用作变量。

for /F "delims=" %%P in (EXAMPLE DIRECTORY\partitions.txt) do (echo test.exe -partition %%P

这个(空行)或空格是作为变量提供的,这是不可取的,所以我在这个命令链的某个地方寻找修复。

2 个答案:

答案 0 :(得分:2)

不要在输出文件中包含不需要的行

>"EXAMPLE DIRECTORY\partitions.txt" (
    for /f "tokens=2 delims==:" %%a in ('
        wmic logicaldisk get caption /value
    ') do (echo(%%a)
)

wmic询问/value格式,输出将类似于

Caption=C:

使用冒号和等号作为分隔符我们只留下驱动器号,并且正如我们要求的tokens=2,没有第二个令牌(驱动器号)的行将被丢弃。

答案 1 :(得分:1)

你可以在主题中简单地问我给你的答案。

(For /F "Skip=1 Delims=:" %%A In ('WMIC LogicalDisk Get Caption') Do For %%B In (%%A) Do Echo(%%B:)>"EXAMPLE DIRECTORY\partitions.txt"