批处理文件将文件名追加到行尾

时间:2011-10-21 10:06:34

标签: batch-file

我有一个文件目录,我需要遍历文件,将每个文件的内容输出到一个新文件,同时将文件名附加到每行的末尾。

因此,从10个文件的目录中我想得到1个文件,每个文件的内容由每个文件的内容组成,但每行的末尾都有每个文件名,所以我知道它最初来自哪个文件。

我可以将固定文本附加到每行的末尾,但我无法弄清楚如何使用文件名,并将其更改为适用于任何文件。我尝试过使用通配符((%~dp0 * .csv),但它说它无法找到指定的文件。

这是我到目前为止所做的:

for /F "delims=" %%j in (%~dp0\6691_706.csv) do echo.%%jAddToEndofLine >> %~dp0\New.txt

有人可以帮忙吗?感谢。

1 个答案:

答案 0 :(得分:1)

失败,因为FOR / F不允许文件使用通配符,它​​用于逐行读取文件。
你应该使用“普通”FOR

for %%A in (%~dp0\*.bat) do (
  echo Processing file '%%A'
  FOR /F "delims=" %%L in (%%A) do (
    echo Line %%L from file %%A >> %~dp0\New.txt
  )
)