在批处理或VBS脚本中逐行读取文本文件?

问题描述:

我有一个文本文件,其中包含我需要创建的文件名列表,减去扩展名。我想要运行一个快速批处理文件命令或VBS脚本来遍历列表,然后根据名称创建一个文件。在批处理或VBS脚本中逐行读取文本文件?

文本文件看起来是这样的:

PRXI0000466 
PRXI0000564 
PRXI0000636 
PRXI0000681 
PRXI0001092 

所以我想遍历每一行,然后做一个“echo . > %file%.txt”(假设%file%包含从文本文件中的行)。

任何人都可以告诉我一个快速的方法来做到这一点?

好了,这是一个班轮在CMD:

for /f %i in (textfile.txt) do @echo . > %i.txt 

for /f环行明智hrough一个文本文件,并在做令牌化方式也是如此。幸运的是,你的线条中没有空格,否则就会在那里调用"delims="之类的东西。

这会在每个新文件的后面放一个包含点的单行。如果你只是想要一个空行,你必须使用echo.>%i.txt。如果您只想创建每个文件(UNIX极客可能只使用touch(1)),则可以使用copy NUL %i.txt。如果你想在批处理文件中使用它(而不是直接从命令行),那么你必须使用%%i而不是%i

我觉得你真的想创建空文件,所以下面应该做的伎俩:

for /f %i in (textfile.txt) do @copy nul %i.txt 

你只是想创建空的文本文件?如果是这样,这个.vbs脚本会做

Set fso = CreateObject("Scripting.FileSystemObject") 
Set listFile = fso.OpenTextFile("list.txt") 
do while not listFile.AtEndOfStream 
    fName = listFile.ReadLine() 
    fso.CreateTextFile(fName + ".txt") 
loop 

文本文件t.txt包含:

PRXI0000466 
PRXI0000564 
PRXI0000636 
PRXI0000681 
PRXI0001092 

这个循环应该解决您的问题。

for /f %%a in (t.txt) do %%a > %%a.txt