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

[文件操作] 批处理如何将txt文本的文件名添加/插入到文本中每一行的行首/开头?

[复制链接]
发表于 2016-6-29 22:04:16 | 显示全部楼层
  1. //&cls&dir /a-d/b *.txt|cscript -nologo -e:jscript "%~f0"&pause&exit
  2. var fso = new ActiveXObject('Scripting.Filesystemobject');
  3. var txtfiles = WSH.StdIn.ReadAll().split(/\r\n/);
  4. for(var i = 0; i<txtfiles.length; i++){
  5.     var filename = fso.GetFile(txtfiles[i]).Name.replace(/\.[^\.]+$/, '');
  6.     var f = fso.OpenTextFile(txtfiles[i], 1);
  7.     var txt = f.ReadAll().replace(/(^|\r?\n)(?!(\r?\n|$))/g, '$&'+filename+',');
  8.     f.Close();
  9.     var f = fso.OpenTextFile(txtfiles[i], 2);
  10.     f.Write(txt);
  11.     f.Close();
  12. }
  13. WSH.echo('Done');
复制代码
 楼主| 发表于 2016-6-30 13:01:14 | 显示全部楼层
回复 15# WHY


    一闪而过,然后好像什么都没发生
 楼主| 发表于 2016-6-30 13:04:29 | 显示全部楼层
回复 14# jrx401


    可以,不过比原先的没快多少。。
 楼主| 发表于 2016-6-30 13:07:13 | 显示全部楼层
回复 16# pcl_test


    这速度好恐怖。。拿一百多个txt试了下,刚点开就转换好了。。。
发表于 2016-7-1 22:38:21 | 显示全部楼层
回复 12# shootman2


    果然很简洁。
     如下两个没有见过, 可否给解释一下呢?
     >>#
    move # "%%a"
发表于 2016-7-1 22:41:47 | 显示全部楼层
回复 16# pcl_test


      看不懂 Code。
     想要看懂,我要参考什么样的资料呢?
发表于 2016-7-2 01:19:59 | 显示全部楼层
回复 20# jrx401


    >> 是重定向符,#是文件名,move在这里是把#文件重命名
这样可能会好一点:
  1. @echo off
  2. for %%a in (*.txt) do (
  3.    (for /f "usebackq delims=" %%b in ("%%a") do (
  4.       echo %%~na %%b
  5.    ))>"%%~na.Log"
  6. )
复制代码
发表于 2016-7-2 01:23:31 | 显示全部楼层
  1. @if (0)==(0) echo off
  2. dir /b *.txt | cscript //nologo //e:jscript "%~f0"
  3. pause & exit
  4. @end

  5. var getContent = function(strFile){
  6.     var strName = fso.GetBaseName(strFile);
  7.     var objFile = fso.OpenTextFile(strFile, 1);
  8.     var s = objFile.ReadAll().replace(/[^\r\n]+/g, strName + ' $&');
  9.     objFile.Close();
  10.     fso.OpenTextFile(strName + '.Log', 2, true).Write(s)
  11. }

  12. var fso = new ActiveXObject('Scripting.FileSystemObject');
  13. while(!WSH.StdIn.AtEndOfStream){getContent(WSH.StdIn.ReadLine());}
复制代码
发表于 2018-7-30 00:03:41 | 显示全部楼层
回复 16# pcl_test
若想把文件名放到行尾,并将所有文件合并为一个新文件,如何改动?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 07:29 , Processed in 0.018440 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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