找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26898|回复: 10

[文本处理] BAT如何将同一目录下的TXT文件的每一行开头加上文件名?

[复制链接]
发表于 2013-12-1 16:50:13 | 显示全部楼层 |阅读模式
请问如何将同一目录下的所有.TXT文件的每一行开头加上文件名?不要路径,空行也不加,先谢了
发表于 2013-12-1 17:06:34 | 显示全部楼层
是第一行加入文件名吧。
发表于 2013-12-1 17:09:35 | 显示全部楼层

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f %%i in ('dir /b *.txt') do (
  4.    echo 《%%~ni》>1_%%i
  5.    for /f "delims=" %%j in (%%i) do (
  6.     set r=%%j
  7. echo !r! >>1_%%i
  8. )
  9. )
  10. pause
  11. rem 把文件名添加到文本的头部
复制代码
发表于 2013-12-1 17:35:22 | 显示全部楼层
for %%i in (*.txt) do echo %%~xni>$&type "%%i">>$&move $ "%%i"
 楼主| 发表于 2013-12-1 19:14:40 | 显示全部楼层
谢谢两位,不是这样的,我要在每个文件中的每一行开头加文件名
 楼主| 发表于 2013-12-2 19:17:30 | 显示全部楼层
请各位好心人帮帮忙,我要在每个文件中的每一行开头加文件名
发表于 2013-12-2 20:09:03 | 显示全部楼层
请具体描述清楚你的问题,给出处理前的文件内容和处理好的示例,是否处理子目录等,而不是让人去猜谜
 楼主| 发表于 2013-12-2 20:35:47 | 显示全部楼层
请问如何将同一目录下的所有.TXT文件的每一行开头加上文件名?不要路径,空行也不加,没有子目录,先谢了,
发表于 2013-12-2 21:57:39 | 显示全部楼层
"空行也不加" 是个什么意思?
试试看吧
  1. @echo off
  2. for %%a in (*.txt) do (
  3.     set "Name=%%~na"
  4.     (for /f "delims=" %%b in ('findstr /n .* "%%a"') do (
  5.         set "str=%%b"
  6.         setlocal enabledelayedexpansion
  7.         set "str=!str:*:=!"
  8.         if "!str!" neq "" (echo,!Name! !str!) else (echo,)
  9.         endlocal
  10.     ))>$
  11.     Move $ "%%a"
  12. )
  13. pause
复制代码
 楼主| 发表于 2013-12-2 22:15:45 | 显示全部楼层
空行也不加文件名,对,就是这样,谢了
发表于 2013-12-15 00:32:38 | 显示全部楼层
本帖最后由 223693 于 2013-12-15 00:38 编辑
for %%i in (*.txt) do echo %%~xni>$&type "%%i">>$&move $ "%%i"
zhanglei1371 发表于 2013-12-1 17:35


各位大神,请问能否帮忙修改这个批处理,取消加入文件后缀(.txt),并增加支持处理文件夹内所有子文件夹中的TXT文件呢
谢谢帮助。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 19:47 , Processed in 0.017649 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表