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

[文本处理] 批处理命令for /f获取文本内容为何出现多余换行?

[复制链接]
发表于 2012-4-19 02:06:02 | 显示全部楼层 |阅读模式
如下所示,为什么最后我的脚本"号换行了.郁闷中..求解..
脚本是这样写的----------------------
  1. @echo off
  2. for /f " skip=3 tokens=*" %%a in ('type g:\123.txt') do echo "%%a"
  3. pause
复制代码
g:\123.txt里面是这样的--------------------

FullName                                                                              
--------                                                                              
G:\test\mulu                                                                           
G:\test\!@#$%^().txt                                                                  
G:\test\dayu8KB - 副本.txt                                                               
G:\test\dayu8KB.txt                                                                    
G:\test\kong ge.txt                                                                    
G:\test\yingcang.txt                                                                  
G:\test\mulu\!@#$%^().txt                                                              
G:\test\mulu\kong ge.txt                                                               
G:\test\mulu\putong.txt                                                               
G:\test\mulu\yingcang.txt            

结果是这样的-------------------------  
"G:\test\mulu\sdfsdf\!@#$%^().txt
        "
"G:\test\mulu\sdfsdf\putong.txt
        "
"G:\test\mulu\sdfsdf\yingcang.txt
        "
"G:\test\mulu\!@#$%^().txt
        "
"G:\test\mulu\kong ge.txt
        "
"G:\test\mulu\putong.txt
        "
"G:\test\mulu\yingcang.txt
        "
"G:\test\!@#$%^().txt
        "
"G:\test\dayu8KB.txt
        "
"G:\test\kong ge.txt
        "
"G:\test\putong.txt
        "
"G:\test\yingcang.txt
        "
请按任意键继续. . .
发表于 2012-4-19 03:30:37 | 显示全部楼层

  1. @echo off
  2. for /f " skip=3 tokens=*" %%a in ('type g:\123.txt') do echo "%%~fa"
  3. pause
复制代码
 楼主| 发表于 2012-4-19 09:10:38 | 显示全部楼层
回复 2# terse


   你好,首现谢谢您,能否说明下这是什么用法?? 谢谢..或者为什么要这么写??
发表于 2012-4-19 10:00:56 | 显示全部楼层
本帖最后由 neorobin 于 2012-4-19 10:03 编辑

因为你的文本中许多行 后面 都是许多的空格, 行的长度已经超过了 cmd 界面的默认列宽(比如 80):

你可以在你原来代码的最前面插入一行
  1. mode con cols=200
复制代码
就可以证实

terse 的代码用法:
%~f1 将 %1 扩展到完全合格的路径名。
会去掉后面无用的空格
发表于 2012-4-19 15:13:15 | 显示全部楼层
用UE或者Notepad++之类的编辑器打开文件,看看行尾是不是有多余的回车/换行。
 楼主| 发表于 2012-4-20 05:10:51 | 显示全部楼层
回复 2# terse


    十分感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 01:03 , Processed in 0.019227 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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