[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]求个文件内容输出的批处理?

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

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 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

TOP

可以了谢谢了

TOP

回复 7# DDDYJQ1


    看来你的文本没换行符...2 楼代码已修改,可遍历子目录

TOP

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

试了一下2楼的,不能处理文件夹,结果
三月1101.txt:是32BB1三月1101.txt:是32BB1.TXT:朋不
我想要的是
1101      是
12A19    三月
32BB1    朋不
生成的文件名就以该子文件夹名,请改进一下

TOP

回复 5# CrLf


    不能处理子文件夹吧

TOP

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

TOP

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

TOP

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 了

TOP

本帖最后由 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
复制代码
1

评分人数

TOP

返回列表