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

[文本处理] 批处理怎样替换文本文件回车符?

大家好!我是新手,有个问题,诚恳向各位请教。文件:时间.txt,原内容如下:
01,08:20:21,08:22:26,,
姓名1
02,08:24:21,09:45:34,,
姓名2
..........

希望通过DOS批处理转换为: 
01,08:20:21,08:22:26,姓名1
02,08:24:21,09:45:34,姓名2
..........

哪位高手能帮忙写个DOS批处理,谢谢!!!

回复 20# CrLf


    参考下,正巧遇到这问题。

TOP

回复 22# ads350668398


不会就看教程:
http://bbs.bathome.net/thread-13347-1-1.html

TOP

回复 12# fxby

什么 vb啊 晕 不会啊算了 我还是想想自己的问题吧

TOP

回复 20# CrLf

     谢谢!

TOP

纯批:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=0123456789 eol=," %%a in (时间.txt) do (
  4.    set /p "a=" & set /p "b="
  5.    echo !a:,,=,!!b!
  6. ))<时间.txt >时间_new.txt
  7. start 时间_new.txt
复制代码
正则:
  1. @set @bathome=1;/*&echo off
  2. cscript -nologo -e:jscript %0 <时间.txt >时间_new.txt
  3. start 时间_new.txt
  4. pause & exit /b */
  5. var text = WScript.StdIn.ReadAll()
  6. WScript.Echo(text.replace(/,\r?\n/g,''))
复制代码

TOP

回复 17# neorobin
  可能是我没说清楚。原文件内容为:
01,2014-11-15,20:39:22,,
20:39:23
替换后文件内容应为:
01,2014-11-15,20:39:22,20:39:23
两者之间的差别就是把原文件任意一行后面的 “,+回车符”替换为“,”,而原文件内的其它内容不变。
   

TOP

回复 15# neorobin
  非常感谢!!!
  我以前简单地学过DOS和数据库,现业余爱好做些平面和多媒体。近段时间琢磨一个小软件,纯粹是从零开始。软件已经基本能用,想再完善一下。
  我把以上内容再学习、消化一下。谢谢!

TOP

本帖最后由 neorobin 于 2014-11-16 11:41 编辑

回复 16# fxby

我是以你的原文件内容如下来处理的
  1. 01,08:20:21,08:22:26,,
  2. 姓名1
  3. 02,08:24:21,09:45:34,,
  4. 姓名2
  5. 03,09:26:43,09:55:01,,
  6. 姓名3
  7. 04,09:44:33,09:56:55,,
  8. 姓名4
复制代码
难道 这些:
"原文件内容:"
"替换成:"
都是你原文件的内容吗???

TOP

回复 14# neorobin
  在DOS时代,我是折腾过批处理之类的事,觉得不深,时间长了忘了,替换回车符无从下手。
  谢谢你的耐心和指点!你刚才发的我在XP和WIN7上都试过,还有问题,运行后弹出窗口,如下:
   

TOP

回复 10# fxby

仅针对你在此楼提出的要求
  1. @echo off & chcp 936 & setlocal enabledelayedexpansion
  2. del /f /q "C:\时间.csv"
  3. >"C:\时间.csv" ( for /f "useback delims=" %%a in ("C:\Users\hh\Desktop\时间.txt") do echo;%%a | find ":" >nul && (set t=%%a)||(echo;!t:~0,-1!%%a) )
复制代码

TOP

回复 10# fxby

你的要求并不复杂, 批处理完全可以解决, 而且批处理保存及修改都非常方便.
但最大的问题是你连操作系统的一些最基本的概念都没有掌握, 即使 别人为你提供了工具, 你却怎么用都不会.

TOP

回复 9# fxby

你不懂当前目录的概念

你启动了命令行, 当前目录是
C:\Users\hh
然后键入了批处理的全路径, 启动了批处理, 你的数据文件不在当前目录, 当然会出现
"系统找不到文件 时间.txt。"

以下三种方式,  任选其一,  你再看看:
A.
保证数据文件和批处理文件在同一个目录, 直接双击批处理文件运行.

B.
你想在命令行键入批处理路径运行, 代码就这样(同样要保证数据文件和批处理文件在同一个目录)
  1. @echo off & chcp 936
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. >时间_new.txt ( for /f "delims=" %%a in (时间.txt) do echo;%%a | find ":" >nul && (set t=%%a)||(echo;!t:~0,-1!%%a) )
  5. start 时间_new.txt
复制代码
C.
把代码中数据文件的相对路径改成绝对路径, 假如你的数据文件全路径为(假设路径中没有任何空格):
C:\Users\hh\Desktop\时间.txt
那么用这个代码:
  1. @echo off & chcp 936
  2. setlocal enabledelayedexpansion
  3. >时间_new.txt ( for /f "delims=" %%a in (C:\Users\hh\Desktop\时间.txt) do echo;%%a | find ":" >nul && (set t=%%a)||(echo;!t:~0,-1!%%a) )
  4. start 时间_new.txt
复制代码
如果数据文件全路径包含空格, 代码得变成另外的样子, 就不说了.

TOP

回复 11# ads350668398


最好能用VB写。替换后将时间.txt,改名为 时间.csv,并复制到C:\。如果C:\ 时间.csv已存在,再次复制时,直接覆盖,不提示。全部在后台运行。

TOP

要不我 试试[元文件发上来]

TOP

返回列表