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

[文本处理] 【已解决】批处理如何分别提取多个txt文本开头的前几个字符写入/输出到新的文本里

现在有一个excel表格存放在    D:\数据存放\数据存放地址.xlsx     用于存放.txt文本的地址,如图:

现在想把每个输入文档1.txt、2.txt、3.txt..........的前10个字符提取出来,分别存放在新的文档1_new.txt、2_new.txt、3_new.txt..........中,并在每个输出文档末尾添加回车。

比如:
输入文档为:
文本1.txt文件内容为
1111111111111111111111111111111111111111111111111111111111
文本2.txt文件内容为
2222222222222222222222222222222222222222222222222222222222
文本3.txt文件内容为
3333333333333333333333333333333333333333333333333333333333
....................

希望输出文档为:
1_new.txt内容为
1111111111
(注:该处有回车)

2_new.txt内容为
2222222222
(注:该处有回车)
....................

谢谢!!
2

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 4
    • pcl_test: 发帖前先使用论坛搜索PB -2

希望大神帮帮忙,谢谢大家了!

TOP

本帖最后由 pcl_test 于 2016-9-20 23:20 编辑

新建一个“文件列表.txt”,将excel表格B列列出的txt文本路径一行一个复制粘贴到“文件列表.txt”里
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('type "文件列表.txt"') do (
  3.     (set /p line=<"%%a"
  4.     echo;!line:~,10!)>"New_%%~nxa"
  5. )
  6. pause
复制代码
  1. rem 第三方http://www.bathome.net/s/tool/index.html?key=gawk
  2. gawk "{fn=$0;sub(/^.+\\/,\"\",fn);getline<$0;print substr($0,1,10)>\"New_\"fn}" "文件列表.txt"
  3. pause
复制代码
  1. powershell -c "gc '文件列表.txt'|%%{$fn='New_'+[System.IO.Path]::GetFileName($_);(gc $_)[0][0..9] -join ''|out-file $fn}"
  2. pause
复制代码
  1. //&cls&cscript -nologo -e:jscript "%~f0"<"文件列表.txt"&pause&exit
  2. var fso = new ActiveXObject('Scripting.FileSystemObject');
  3. while(!WSH.StdIn.AtEndOfStream){
  4.     var line = WSH.StdIn.ReadLine();
  5.     try{
  6.         var text = fso.OpenTextFile(line, 1).ReadLine();
  7.         fso.CreateTextFile('New_'+line.replace(/^.+\\/, ''), 2).WriteLine(text.substr(0,10));
  8.     }catch(e){WSH.echo(line+'文件为空或不存在')};
  9. }
复制代码
1

评分人数

TOP

返回列表