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^=^,/^“
,不带引号。我们将转义所有分隔字符,因此不需要将其括在引号中。