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

[文本处理] 【已解决】bat文件处理含较多数据txt时无结果

本帖最后由 VinC 于 2022-2-20 09:12 编辑

想将txt文件中的数据(以“和空格分隔)变成1列(即每个数是一行)并存入test.csv,我写了如下代码,经测试该代码对数据量少的txt文件是可行的,但是含有较多数据时就不能了,test.csv中空白。请教是什么问题?

数据例子:1 2 3
变成1
      2
      3
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "delims=  tokens=*" %%a in (01.txt) do (
  3.    for %%B in (%%a) do echo %%B
  4. ))>"test.csv"
  5. pause&exit
复制代码

可能是突破了Excel行数最大值。
其外没有发现有问题。
目的,学习批处理

TOP

回复 1# VinC


    含有较多数据的文件有多大?请压缩之后上传网盘,以便他人理解需求、测试代码。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 3# Batcher


    您好,我已经测试数据上传至百度网盘,请帮我测试下,谢谢啦(链接:https://pan.baidu.com/s/1KxhMnbmkMfdw_cRpESVVZg
提取码:ft5i)

TOP

回复 2# hlzj88


    应该不会,因为成功的数据只有几百行。我已经数据传输至百度网盘,您方便的话帮我看一下是啥问题,谢谢了(链接:https://pan.baidu.com/s/1KxhMnbmkMfdw_cRpESVVZg
提取码:ft5i)

TOP

相应的数据我已上传至网盘,请各位帮忙看一下,谢谢啦(链接:https://pan.baidu.com/s/1KxhMnbmkMfdw_cRpESVVZg
提取码:ft5i)

TOP

回复 4# VinC


看过你的原始文件之后发现不是行太多,而是列太多。试试这样:
  1. @echo off
  2. powershell -c "Get-Content 01.csv | Foreach-Object {$_ -replace """`t""", """`r`n"""}" > 01_New.csv
复制代码
1

评分人数

    • VinC: 乐于助人技术 + 1
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

借助certutil
  1. @echo off & cd /d "%~dp0"
  2. setlocal enabledelayedexpansion
  3. REM 输入 01.csv
  4. set "in_file=01.csv"
  5. REM 输出 test.csv
  6. set "out_file=test.csv"
  7. REM 处理
  8. del /f tmp.hex >nul 2>nul
  9. certutil -encodehex 01.csv t1.hex
  10. (
  11. for /f "delims=" %%i in (t1.hex) do (
  12. set "line=%%i"
  13. REM 空格,制表符,双引号替换
  14. for %%a in (09 20 22) do set "line=!line:%%a =0a !"
  15. echo !line!
  16. )
  17. )>"t2.hex"
  18. certutil -decodehex t2.hex test.csv
  19. del t*.hex
  20. pause&exit
复制代码
2

评分人数

TOP

回复 7# Batcher


    感谢帮助,简单的一行代码就能解决大问题,厉害厉害!已申请加群,希望能向各位大佬学习(由于前段时间一直在弄别的事情,没及时登录)

TOP

回复 8# went


    谢谢帮助,虽然还没懂为啥这么写,但是亲测管用!(由于前段时间在忙别的事情,所以一直没登录批处理之家)

TOP

返回列表