我有一个批处理文件,可以从文本文件中读取和设置值。 但是文本文件包含不同变量的选项卡
批处理文件命令:
TileProvider tileProvider = new BackgroundTileProvider();
TileOverlay tileOverlay = map.addTileOverlay(
new TileOverlayOptions().tileProvider(tileProvider));
文本文件(input.txt):
for /f "tokens=* delims=<TAB>" %%x in (input.txt) do set %%x
但是变量没有正确设置。
答案 0 :(得分:3)
这里有两点:
默认 delims=
值包含空格和Tab作为分隔符,因此您不必包含delims=
选项,除非您想< em>忽略空格作为分隔符!
您的tokens=*
选项在for
命令(本例中为%%x
)中定义一个令牌字母,其中包含所有令牌< / em>在行中。如果您想获得四个令牌,您需要指定tokens=1-4
,请使用另一个令牌启动令牌字母,并相应地处理每个令牌:
for /f "tokens=1-4" %%a in (input.txt) do (
set "%%a" & set "%%b" & set "%%c" & set "%%d"
)
答案 1 :(得分:1)
如果您的文本文件有多行(具有不同/未知数量的标记),这甚至可以工作:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in (input.txt) do (
set line=%%i
for %%x in ("!line: =","!") do set %%x
)
诀窍是:通过在引号中包含字符串,分隔符字符不再被视为分隔符。因此,在字符串的开头和结尾添加引号并将每个TAB
替换为&#34;引用逗号引号&#34;将字符串更改为:
"a=one","b=two","c=three","d=four"
可以使用for %%x ...