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

[文本处理] 帮忙改进一下原样输出带有特殊字符的行的BAT代码

[复制链接]
发表于 2012-12-6 21:09:05 | 显示全部楼层 |阅读模式
心血来潮:
  1. @echo off

  2. for /f "tokens=*" %%a in (1.txt) do (
  3.    set str="%%a"
  4.    for /f "tokens=*" %%b in ('call echo %%str%%') do (
  5.       echo %%~b
  6.    )
  7. )

  8. pause
复制代码
几乎能输出所有的特殊字符,但是不能输出空行,改怎么改进?
发表于 2012-12-7 09:59:31 | 显示全部楼层
你测试过以空格开头的行吗?
 楼主| 发表于 2012-12-7 21:19:05 | 显示全部楼层
为什么空格会丢失? 麻烦解释一下!谢谢。
发表于 2012-12-7 22:34:22 | 显示全部楼层
回复 3# 悬崖之树


    tokens=*的特性
 楼主| 发表于 2012-12-11 17:13:41 | 显示全部楼层
回复 4# BAT-VBS
其实是因为 “tokens=*” 和默认的以空格为分割符 共同作用导致的。
如下代码就可以正确输出空格了:
  1. @echo off

  2. for /f "tokens=* delims=" %%a in (1.txt) do (
  3.    set str="%%a"
  4.    for /f "tokens=*" %%b in ('call echo %%str%%') do (
  5.       echo %%~b
  6.    )

  7. )
  8. pause
复制代码
发表于 2012-12-11 22:17:26 | 显示全部楼层
回复 5# 悬崖之树


    你测试过以分号开头的行吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 20:35 , Processed in 0.017464 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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