2016-12-06 230 views
0

我通过一个文本文件,这样的尝试循环循环:批处理文件“”

"11/05/2016",Paris,Snowy,02 
N/A,February,London,15 
"11/05/2016",Berlin,Sunny,25 

,使它看起来像这样:

2016/11/05,Paris,Snowy,02 
N/A,London,Rainy,15 
2016/11/05,Berlin,Sunny,25 

我坚持用

FOR /F "tokens=1,2,3* delims=,/" %%G IN (weather.txt) DO @echo %%I %%G %%H %%J 

有什么想法吗?在%%G%%g

+2

为什么要用'/'作为分隔符? –

+0

您需要将您分隔的字符添加到回显中。 '@echo %% I \ %% G \ %% H,%% J,%% K,%% L'并将'tokens'改为'1-6'。 – 2016-12-06 21:32:42

+0

@ThomasWeller将2016放在第一位,但它会造成N/A问题,并不能解决问题。 –

回答

3
@ECHO OFF 
SETLOCAL EnableExtensions 
FOR /F "usebackq tokens=1,* delims=," %%G IN ("weather.txt") DO (
    FOR /F "tokens=1-3 delims=/" %%g IN ("%%~G") DO (
    if "%%~i"=="" (
     rem N/A     input -> output 
     echo(%%~G,%%~H 
    ) else (
     rem 11/05/2016   input 
     echo(%%i/%%g/%%h,%%H 
     rem 2016/11/05   output 
    ) 
) 
) 

令牌模板如下:

 
G   H 
"11/05/2016",Paris,Snowy,02 
g h i 

G H 
N/A,London,Rainy,15 
g h      3rd token (%%i) is empty