Batch file 批处理文件循环&引用;

Batch file 批处理文件循环&引用;,batch-file,Batch File,我试图循环浏览一个文本文件,如下所示: "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 @e

我试图循环浏览一个文本文件,如下所示:

"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
有什么想法吗

@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
%%G
循环中的令牌模板如下所示:

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 GH “2016年5月11日”,巴黎,斯诺,02 g h i GH 不适用,伦敦,雨天,15 g h第三个令牌(%%i)为空
%%G
%%G
循环中的令牌模板如下所示:

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 GH “2016年5月11日”,巴黎,斯诺,02 g h i GH 不适用,伦敦,雨天,15 g h第三个令牌(%%i)为空
为什么要使用
/
作为分隔符?您需要在回显中添加分隔的字符
@echo%%I\%%G\%%H、%%J、%%K、%%L
并将
tokens
更改为
1-6
@ThomasWeller,将2016年放在首位,但这会使N/A出现问题,无法解决“”问题。
FOR/F“tokens=1,2,3*delims=,“%%G in(weather.txt)DO@echo%%~I、%%~G、%%~H、%%~J
?我没有注意到这些引号。将其用作字符串-
tokens^=1-3^delims^=^/^“
不带引号。我们对所有分隔符进行转义,因此不需要将其括在引号中。为什么要使用
/
作为分隔符?您需要将您分隔的字符添加到回显中
@echo%%I\%%G\%%H、%%J、%%K、%%L
并将
tokens
更改为
1-6
@ThomasWeller,将2016年放在首位,但这会使N/A出现问题,无法解决“”问题。
FOR/F“tokens=1,2,3*delims=,“%%G in(weather.txt)DO@echo%%~I、%%~G、%%~H、%%~J
?我没有注意到这些引号。将其用作字符串-
tokens^=1-3^delims^=^,/^“
,不带引号。我们将转义所有分隔字符,因此不需要将其括在引号中。