windows - 批处理 TAB 分隔符还会在 ECHO 后删除字符 T、A 和 B

标签 windows batch-file

我有大约 300 个文件需要解析,这些文件以制表符分隔。我在下面使用的代码(未完成)是:

for /r C:\mywork2\MAX\ %%f in (*) do (
    for /f "delims=TAB" %%i in (%%f) do (
        for %%u in (%%i) do (
            ECHO %%u
        )
    )
    pause
)

它似乎工作正常,除了当一个字段以 T、A 或 B 开头时,ECHO 会删除这个字符?即 Taxidea_taxus变成 axidea_taxus .这是一个错误,还是我可以解决它?我应该注意使用 <TAB>产生相同的效果。

最佳答案

当您指定 delims=TAB 时,处理器按字面意思使用 TAB 作为分隔符。要使用制表符,您必须输入文字制表符(在脚本中将显示为空格)。

试试这个:

REM Set a variable to the <TAB> character.
REM Make sure you editor doesn't replace Tabs with spaces.
REM Enter an actual <tab> in the SET statement below.
SET "TabChar=    "

for /r C:\mywork2\MAX\ %%f in (*) do (
    REM Parse with the tab character.
    for /f "delims=%TabChar%" %%i in (%%f) do (
        for %%u in (%%i) do (
            ECHO %%u
        )
    )
    pause
)

关于windows - 批处理 TAB 分隔符还会在 ECHO 后删除字符 T、A 和 B,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27662029/

相关文章:

c - 为什么我在 Windows 机器上用 C 开发时会出现 include <windows.h> 错误?

windows - 检测任务栏按钮的大小

java - 如何确保我的 tensorFlow Java 程序正在 Windows 上使用我的 GPU?

batch-file - 批量编程 : read txt and keep variables with a subroutine

visual-studio - 在 Visual Studio 构建事件中从批处理文件输出错误、警告和消息

windows - 如何制作只显示文本文件最后一行的批处理脚本?

c++ - 集成 Windows 身份验证 Wininet

php - 如何设置批处理文件来获取txt文件并将一些数据放入mySQL数据库中

batch-file - 如何在每 (n) 行后插入空行?

batch-file - 将 dos/batch 中的字符串添加到文件名