Board logo

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

作者: 悬崖之树    时间: 2012-12-6 21:09     标题: 帮忙改进一下原样输出带有特殊字符的行的BAT代码

心血来潮:
  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
复制代码
几乎能输出所有的特殊字符,但是不能输出空行,改怎么改进?
作者: BAT-VBS    时间: 2012-12-7 09:59

你测试过以空格开头的行吗?
作者: 悬崖之树    时间: 2012-12-7 21:19

为什么空格会丢失? 麻烦解释一下!谢谢。
作者: BAT-VBS    时间: 2012-12-7 22:34

回复 3# 悬崖之树


    tokens=*的特性
作者: 悬崖之树    时间: 2012-12-11 17:13

回复 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
复制代码

作者: BAT-VBS    时间: 2012-12-11 22:17

回复 5# 悬崖之树


    你测试过以分号开头的行吗?




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2