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

[文本处理] 批处理将txt文件每行的最后加一个分号,程序解惑

程序代码
FOR %%j IN (*.txt) DO FOR /F "tokens=* delims=" %%i IN (%%j) DO ECHO %%i; >>new.txt
start new.txt

我的本意是想通过批处理将txt文件每行的最后加一个分号
比如,现在有个11.txt文件,里面内容如下:
111111111
2222222222222222
33333333333333333
444444444444
通过批处理,我想让每行末端增加一个分号,变为
111111111;
2222222222222222;
33333333333333333;
444444444444;

但是通过我上述程序,出现问题,输出结果为

111111111;
2222222222222222;
33333333333333333;
444444444444;
111111111;;
2222222222222222;;
33333333333333333;;
444444444444;;

请问如何解决?谢谢!

很好 学习了 水电费

TOP

回复 6# 悬崖之树

把重定向放在外面可以提高效率
  1. @echo off
  2. (for %%j in (*.txt) do (
  3.     for /f %%i in (%%j) do echo %%i;
  4. ))>new
  5. ren new new.txt
  6. start new.txt
复制代码
1

评分人数

TOP

回复 7# wokong


    楼主需要处理很多个文件

TOP

回复 5# 1270697389

貌似不用开启变量延迟扩展吧!

还有 生成的文件的扩展名肯定是.txt,为什么还要%%~xa 呢?
时光荏苒||新陈代谢&&涛声依旧||本性难移

TOP

@echo off
for /f %%i in (成都信息.txt) do echo %%i;>>ret.txt
pause

就这个就搞定了 有那么难吗

TOP

本帖最后由 悬崖之树 于 2014-1-2 22:43 编辑

出现
111111111;
2222222222222222;
33333333333333333;
444444444444;
111111111;;
2222222222222222;;
33333333333333333;;
444444444444;;

的原因是新生成的new.txt也被归入(*.txt)里了。如果要把当前目录下所有的txt文件的内容修改后集中保存在new.txt里的话可以这样:
  1. @echo off
  2. for %%j in (*.txt) do (
  3. for /f %%i in (%%j) do echo %%i;>>new
  4. )
  5. ren new new.txt
  6. start new.txt
复制代码
时光荏苒||新陈代谢&&涛声依旧||本性难移

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f %%a in ('dir /b /a-d *.txt') do (
  4. for /f %%i in (%%a) do echo %%i;>>%%~dpna_1%%~xa
  5. )
  6. pause
复制代码
初九的冬天

TOP

回复 3# isc2010
  1. @echo off
  2. (for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
  3.     for /f "usebackq tokens=*" %%j in ("%%i") do (
  4.         echo %%j;
  5.     )
  6. ))>new.txt
  7. start new.txt
复制代码

TOP

回复 2# DAIC


    你好,谢谢你的回答,不过我复制代码运行以后,出现如下内容

11.txt;
11.txt;
11.txt;
11.txt;
11.txt;
11.txt;
11.txt;
11.txt;
11.txt;
11.txt;
11.txt;
11.txt;
11.txt;
11.txt;
11.txt;
11.txt;
11.txt;
11.txt;
11.txt;
11.txt;
11.txt;
11.txt;
11.txt;
11.txt;
11.txt;

TOP

  1. @echo off
  2. (for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
  3.     for /f "usebackq tokens=*" %%j in ("%%i") do (
  4.         echo %%i;
  5.     )
  6. ))>new.txt
  7. start new.txt
复制代码

TOP

返回列表