2016-12-06 231 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