标题: [文本处理] BAT如何将同一目录下的TXT文件的每一行开头加上文件名? [打印本页]
作者: DDDYJQ1 时间: 2013-12-1 16:50 标题: BAT如何将同一目录下的TXT文件的每一行开头加上文件名?
请问如何将同一目录下的所有.TXT文件的每一行开头加上文件名?不要路径,空行也不加,先谢了
作者: 1270697389 时间: 2013-12-1 17:06
是第一行加入文件名吧。
作者: 1270697389 时间: 2013-12-1 17:09
- @echo off
- setlocal enabledelayedexpansion
- for /f %%i in ('dir /b *.txt') do (
- echo 《%%~ni》>1_%%i
- for /f "delims=" %%j in (%%i) do (
- set r=%%j
- echo !r! >>1_%%i
- )
- )
- pause
- rem 把文件名添加到文本的头部
复制代码
作者: zhanglei1371 时间: 2013-12-1 17:35
for %%i in (*.txt) do echo %%~xni>$&type "%%i">>$&move $ "%%i"
作者: DDDYJQ1 时间: 2013-12-1 19:14
谢谢两位,不是这样的,我要在每个文件中的每一行开头加文件名
作者: DDDYJQ1 时间: 2013-12-2 19:17
请各位好心人帮帮忙,我要在每个文件中的每一行开头加文件名
作者: zhanglei1371 时间: 2013-12-2 20:09
请具体描述清楚你的问题,给出处理前的文件内容和处理好的示例,是否处理子目录等,而不是让人去猜谜
作者: DDDYJQ1 时间: 2013-12-2 20:35
请问如何将同一目录下的所有.TXT文件的每一行开头加上文件名?不要路径,空行也不加,没有子目录,先谢了,
作者: apang 时间: 2013-12-2 21:57
"空行也不加" 是个什么意思?
试试看吧- @echo off
- for %%a in (*.txt) do (
- set "Name=%%~na"
- (for /f "delims=" %%b in ('findstr /n .* "%%a"') do (
- set "str=%%b"
- setlocal enabledelayedexpansion
- set "str=!str:*:=!"
- if "!str!" neq "" (echo,!Name! !str!) else (echo,)
- endlocal
- ))>$
- Move $ "%%a"
- )
- pause
复制代码
作者: DDDYJQ1 时间: 2013-12-2 22:15
空行也不加文件名,对,就是这样,谢了
作者: 223693 时间: 2013-12-15 00:32
本帖最后由 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文件呢
谢谢帮助。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |