批量TAB分隔符还会在ECHO时删除字符T,A和B.

时间:2014-12-26 21:11:41

标签: 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>产生相同的效果。

1 个答案:

答案 0 :(得分:2)

当您指定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
)