[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 pcl_test 于 2015-8-19 00:02 编辑
  1. Set fso = CreateObject("Scripting.FileSystemObject")
  2. Set files = fso.GetFolder(".").Files
  3. tmp1 = "%"&vbCrLf
  4. tmp2 = "(END)"&vbCrLf&"/G08 P1"&vbCrLf&"G54"&vbCrLf
  5. For Each file In files
  6.     If LCase(Right(file.Name, 3)) = ".nc" Then
  7.         tmp1 = tmp1&"("&file.Name&")"&vbCrLf
  8.         Set f = fso.OpenTextFile(file,1)
  9.         txt = txt&reTxT(f.ReadAll,"^/G08 P1\r?\nG54$|^%$")
  10.         f.Close
  11.     End If
  12. Next
  13. fso.CreateTextFile(".\000.nc", 2).WriteLine tmp1&tmp2&txt&"%"
  14. Msgbox "合并完成"
  15. Function reTxT(txt,patrn)
  16.     Set re = New RegExp
  17.     re.Pattern = patrn
  18.     re.Global = True
  19.     re.MultiLine = True
  20.     reTxT = re.Replace(txt,"")
  21. End Function
复制代码

TOP

回复 3# raozhao2008

居然不是gbk编码,打包上传你的nc文件,可发网盘分享链接

TOP

本帖最后由 pcl_test 于 2015-8-19 19:03 编辑

回复 3# raozhao2008

保存为bat文件运行
  1. 1>1/* :
  2. echo off
  3. dir /b *.nc|cscript -nologo -e:jscript "%~0"
  4. exit /b
  5. */
  6. var loadText = function (strFileIn,strCharset){
  7.     var stream = new ActiveXObject('ADODB.Stream');
  8.     stream.Type = 2;
  9.     stream.Mode = 3;
  10.     stream.Charset = strCharset;
  11.     stream.Open();
  12.     stream.LoadFromFile(strFileIn);
  13.     stream.Position = 0;
  14.     return stream.ReadText;
  15. }
  16. var saveText = function (strArg,strFileOut,strCharset){
  17.     var stream = new ActiveXObject('ADODB.Stream');
  18.     stream.Mode = 3;
  19.     stream.Type = 2;
  20.     stream.Charset = strCharset;
  21.     stream.Open();
  22.     stream.WriteText(strArg);
  23.     return stream.SaveToFile(strFileOut,2);
  24. }
  25. var txt = '';
  26. var fso = new ActiveXObject('Scripting.Filesystemobject');
  27. var StdIn = fso.GetStandardStream(0);
  28. var tmp1 = '%\r\n';
  29. var tmp2 = '(END)\r\n/G08 P1\r\nG54\r\n';
  30. while(!StdIn.AtEndOfStream) {
  31.     var file = StdIn.ReadLine();
  32.     tmp1 = tmp1+'('+file+')\r\n';
  33.     txt = txt+loadText(file,'utf-8').replace(/^\/G08 P1\r?\nG54$|^M30\r?\n%$|^%$|^O0100/mg,'');
  34. }
  35. txt = tmp1+tmp2+txt+'M30\r\n%';
  36. saveText(txt.replace(/(\r?\n)+/g,'\r\n'),'000.nc','utf-8')
复制代码

TOP

回复 7# raozhao2008


    本版规则
1、求助时,务必在顶楼一次性把问题交代清楚,建议给出完整有针对性的样本,样本过大可发网盘分享链接。勿发无意义的标题
2、使用 code 标记把代码部分括起来(单击回复框的 <> 按钮,复制粘贴代码进去),以便复制。问题解决后,请编辑顶楼帖子在标题前面注明[已解决]
http://www.bathome.net/thread-3473-1-1.html

TOP

本帖最后由 pcl_test 于 2015-8-19 19:30 编辑

回复 9# raozhao2008
6楼已改为离线版

关于传路径的问题,然而……
bat
  1. @echo off
  2. start "正在获取数据,请稍后..." /min "D:\合并NC程序.vbs" "%cd%"
复制代码
vbs
  1. Set Ws = CreateObject("wscript.shell")
  2. If Wscript.Arguments.Count=0 Then
  3. Wscript.Quit
  4. End If
  5. msgbox Wscript.Arguments(0)
复制代码

TOP

返回列表