Board logo

标题: [文本处理] [已解决]求个文件内容输出的批处理? [打印本页]

作者: DDDYJQ1    时间: 2014-4-28 23:17     标题: [已解决]求个文件内容输出的批处理?

某文件夹下有许多子文件夹,每个子文件夹下有许多.TXT文件,每个.TXT文件只有几个汉字或字母,想把每个子文件夹的所有.TXT文件列表输出成一个文件,要"文件名 内容"格式输出,如下
文件名   文件内容
1101      是
12A19    三月
32BB1    朋不
先谢了
作者: CrLf    时间: 2014-4-28 23:23

本帖最后由 CrLf 于 2014-4-29 20:15 编辑
  1. @echo off
  2. for /f "delims=U" %%a in ('cmd /u /c echo 唉') do set "tab=%%a"
  3. (
  4. echo 文件名%tab%文件内容
  5. for /r %%a in (*.txt) do (
  6.    for /f "delims=" %%b in (%%~sa) do echo %%~na%tab%%%b
  7. )
  8. )>结果.log
复制代码

作者: CrLf    时间: 2014-4-28 23:50

powershell 代码:
  1. $a = "文件名`t文件内容"
  2. $b = Get-Content *.txt | ForEach-Object{ ($_.pschildname+"`t"+$_)}
  3. $a,$b|Set-Content -Encoding string 输出.txt
复制代码
对于 $_ 的值,在 select-object 应该怎么表达呢?只好用 foreach-object 了
作者: CrLf    时间: 2014-4-28 23:57

gawk 什么的最好用了:
  1. @gawk "BEGIN{print \"文件名\t文件内容\"}{print FILENAME \"\t\" $0}" *.txt>结果.log
复制代码

作者: CrLf    时间: 2014-4-29 00:12

findstr + sed 也是极爽的:
  1. @echo 文件名:文件内容^&findstr . *.txt | sed "s/:/\t/" >结果.log
复制代码

作者: DAIC    时间: 2014-4-29 08:06

回复 5# CrLf


    不能处理子文件夹吧
作者: DDDYJQ1    时间: 2014-4-29 09:54

本帖最后由 DDDYJQ1 于 2014-4-29 20:20 编辑

试了一下2楼的,不能处理文件夹,结果
三月1101.txt:是32BB1三月1101.txt:是32BB1.TXT:朋不
我想要的是
1101      是
12A19    三月
32BB1    朋不
生成的文件名就以该子文件夹名,请改进一下
作者: CrLf    时间: 2014-4-29 20:19

回复 7# DDDYJQ1


    看来你的文本没换行符...2 楼代码已修改,可遍历子目录
作者: DDDYJQ1    时间: 2014-4-29 20:25

可以了谢谢了
作者: DDDYJQ1    时间: 2014-4-30 15:53

本帖最后由 DDDYJQ1 于 2014-4-30 19:12 编辑

2楼的代码,今天再试一下变成了下面这种,请各位帮忙看一下
文件名Sb文件内容
是是
三月三月
朋不朋不
我要的是如下的格式
1101      是
12A19    三月
32BB1    朋不
前面的文件名没有了
先谢了

自己搞好了
@echo off

for /f "delims=U" %%a in ('cmd /u /c echo 唉') do set "tab=%%a"

(

echo 文件名%tab%文件内容

for /r %%a in (*.txt) do (

   for /f "delims=" %%b in (%%~sa) do echo %%~na %%b

)

)>结果.log




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2