我有一个文本文件,其中包含我需要创建的文件名列表,减去扩展名。我想运行一个快速批处理文件命令或VBS脚本,它将遍历列表,然后根据名称创建一个文件。
文本文件如下所示:
PRXI0000466
PRXI0000564
PRXI0000636
PRXI0000681
PRXI0001092
所以我想循环遍历每一行,然后执行“echo . > %file%.txt
”(假设%file%
包含文本文件中的行)。
有人能告诉我一个快速的方法吗?
答案 0 :(得分:5)
您是否只是想创建空文本文件?如果是这样,这个.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
答案 1 :(得分:5)
嗯,这是cmd中的单行:
for /f %i in (textfile.txt) do @echo . > %i.txt
for /f
通过文本文件逐行循环,并在路上进行标记化。幸运的是,你的行中没有空格,否则就会在那里调用像"delims="
这样的东西。
这会使包含点的单行跟在每个新文件中的空格之后。如果您只想要一个空白行,则必须使用echo.>%i.txt
。如果您只想创建每个文件(UNIX geeks可能只使用touch
(1)),您可以使用copy NUL %i.txt
。如果要在批处理文件中使用它(而不是直接从命令行使用),则必须使用%%i
而不是%i
。
我认为你真的想创建空文件,所以以下应该可以解决这个问题:
for /f %i in (textfile.txt) do @copy nul %i.txt
答案 2 :(得分:0)
文本文件t.txt包含:
PRXI0000466
PRXI0000564
PRXI0000636
PRXI0000681
PRXI0001092
这个循环可以解决你的问题。
for /f %%a in (t.txt) do %%a > %%a.txt