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

[文本处理] 帮忙改进一下原样输出带有特殊字符的行的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
复制代码
几乎能输出所有的特殊字符,但是不能输出空行,改怎么改进?
时光荏苒||新陈代谢&&涛声依旧||本性难移

回复 5# 悬崖之树


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

TOP

回复 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
复制代码
时光荏苒||新陈代谢&&涛声依旧||本性难移

TOP

回复 3# 悬崖之树


    tokens=*的特性

TOP

为什么空格会丢失? 麻烦解释一下!谢谢。
时光荏苒||新陈代谢&&涛声依旧||本性难移

TOP

你测试过以空格开头的行吗?

TOP

返回列表