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

[文本处理] [已解决]批处理怎样将多个txt内容导入表格?

[复制链接]
发表于 2024-6-15 10:24:57 | 显示全部楼层 |阅读模式
本帖最后由 gddsssko 于 2024-6-15 17:03 编辑

将目录下、子目录及子子目录下所有txt文件名称和内容导入到表格
将第1个txt名称放在表格A1单元格,txt内容每隔一行放入一个单元格(第一行放入B1单元格,第二行放入C1单元格......)
将第2个txt名称放在表格A2单元格,txt内容每隔一行放入一个单元格(第一行放入B2单元格,第二行放入C2单元格......)
...
将第n个txt名称放在表格An单元格,txt内容每隔一行放入一个单元格(第一行放入Bn单元格,第二行放入Cn单元格......)

//空行也算一行,txt内容一般不超过100行, txt导入不考虑先后顺序,txt总数量超过一万。

     例如:
TXT文件名称为:
    A01.txt
TXT文件内容为:
    你好,世界
    HelloWorld
     
    上边是空行
    ABC123
导入到表格:
    A1单元格:A01    B1单元格:你好,世界    C1单元格:HelloWorld    D1单元格:     E1单元格:上边是空行    F1单元格:ABC123
发表于 2024-6-15 12:17:29 | 显示全部楼层
  1. @echo off
  2. cd /d "%~dp0"
  3. (for /r %%i in (*.txt) do (
  4.         set /p="%%~ni"<nul
  5.         for /f "tokens=1* delims=[]" %%a in ('find /n /v "" ^<"%%i"') do (
  6.                 set /p=","%%b""<nul
  7.         )
  8.         echo=
  9. ))>out.csv
  10. pause
复制代码
发表于 2024-6-15 14:06:14 | 显示全部楼层
100 行 10000 列
如果是excel 用 vba 或者 powershell 好些
 楼主| 发表于 2024-6-15 15:25:19 | 显示全部楼层
本帖最后由 gddsssko 于 2024-6-15 15:35 编辑

回复 2# 77七
链接:https://pan.baidu.com/s/1wJge02-TI0REsBc9r2hcug?pwd=4b3g
提取码:4b3g
txt名字正常,内容里面的汉字却乱码,然后两个文本内容之间中间还夹杂着几百行教程:
SET [variable=[string]]

  variable  指定环境变量名。
  string    指定要指派给变量的一系列字符串。

要显示当前环境变量,键入不带参数的 SET。

如果命令扩展被启用,SET 会如下改变:

可仅用一个变量激活 SET 命令,等号或值不显示所有前缀匹配
SET 命令已使用的名称的所有变量的值。例如:

    SET P

会显示所有以字母 P 打头的变量

如果在当前环境中找不到该变量名称,SET 命令将把 ERRORLEVEL
设置成 1。

SET 命令不允许变量名含有等号。

在 SET 命令中添加了两个新命令行开关:

    SET /A expression
    SET /P variable=[promptString]

/A 命令行开关指定等号右边的字符串为被评估的数字表达式。该表达式
评估器很简单并以递减的优先权顺序支持下列操作:

    ()                  - 分组
    ! ~ -               - 一元运算符
    * / %               - 算数运算符
    + -                 - 算数运算符
    << >>               - 逻辑移位
    &                   - 按位“与”
    ^                   - 按位“异”
    |                   - 按位“或”
    = *= /= %= += -=    - 赋值
      &= ^= |= <<= >>=
等等差不多300行
发表于 2024-6-15 16:16:33 | 显示全部楼层
回复 4# gddsssko


   我找到原因了,没有对 文本中的引号做处理。
  1. @echo off
  2. chcp 65001 >nul
  3. cd /d "%~dp0"
  4. (for /r %%i in (*.txt) do (
  5.         set str="%%~ni"
  6.         for /f "tokens=1* delims=[]" %%a in ('find /n /v "" ^<"%%i"') do (
  7.                 set line=%%b
  8.                 setlocal enabledelayedexpansion
  9.                 if "!line!" neq "" (
  10.                         set "line=!line:"=""!"
  11.                 )
  12.                 for /f "delims=" %%x in ("!str!,"!line!"") do (
  13.                         endlocal
  14.                         set "str=%%x"
  15.                 )
  16.         )
  17.         setlocal enabledelayedexpansion
  18.         echo=!str!
  19.         endlocal
  20. ))>out.csv
  21. pause
复制代码
 楼主| 发表于 2024-6-15 17:02:46 | 显示全部楼层
回复 5# 77七
OK了,还是你最帅啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 01:42 , Processed in 0.018665 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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