标题: [文本处理] 【已解决】批处理如何分别提取多个txt文本开头的前几个字符写入/输出到新的文本里 [打印本页]
作者: 鱼丸粗面 时间: 2016-9-20 17:08 标题: 【已解决】批处理如何分别提取多个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
(注:该处有回车)
....................
谢谢!!
作者: 鱼丸粗面 时间: 2016-9-20 17:18
希望大神帮帮忙,谢谢大家了!
作者: pcl_test 时间: 2016-9-20 20:31
本帖最后由 pcl_test 于 2016-9-20 23:20 编辑
新建一个“文件列表.txt”,将excel表格B列列出的txt文本路径一行一个复制粘贴到“文件列表.txt”里- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('type "文件列表.txt"') do (
- (set /p line=<"%%a"
- echo;!line:~,10!)>"New_%%~nxa"
- )
- pause
复制代码
- rem 第三方http://www.bathome.net/s/tool/index.html?key=gawk
- gawk "{fn=$0;sub(/^.+\\/,\"\",fn);getline<$0;print substr($0,1,10)>\"New_\"fn}" "文件列表.txt"
- pause
复制代码
- powershell -c "gc '文件列表.txt'|%%{$fn='New_'+[System.IO.Path]::GetFileName($_);(gc $_)[0][0..9] -join ''|out-file $fn}"
- pause
复制代码
- //&cls&cscript -nologo -e:jscript "%~f0"<"文件列表.txt"&pause&exit
-
- var fso = new ActiveXObject('Scripting.FileSystemObject');
- while(!WSH.StdIn.AtEndOfStream){
- var line = WSH.StdIn.ReadLine();
- try{
- var text = fso.OpenTextFile(line, 1).ReadLine();
- fso.CreateTextFile('New_'+line.replace(/^.+\\/, ''), 2).WriteLine(text.substr(0,10));
- }catch(e){WSH.echo(line+'文件为空或不存在')};
- }
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |