在批处理或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