CSG*_*CSG 1 windows for-loop cmd batch-file
我需要快速的方法在bat文件中插入几行结构化数据我使用了一个名为myarray的数组来扫描和"读取"我的值,但它不起作用,我不明白为什么这是我的代码:
@echo off
set myarray[1]=myfield1#myfield2#mysubfield31;mysubfield32#myfield4
for /f "tokens=1-9 delims=#" %%a in ('echo %myarray[1]%') do (
echo field1 is %%a
echo field2 is %%b
echo field3 is %%c
echo field4 is %%d
for /f "tokens=1-9 delims=;" %%k in ('echo %%c') do (
echo subfield3 is %%k
echo subfield3 is %%l
)
)
Run Code Online (Sandbox Code Playgroud)
输出是这样的:
field1 is myfield1
field2 is myfield2
field3 is mysubfield31 mysubfield32
field4 is myfield4
subfield3 is mysubfield31 mysubfield32
subfield3 is
Run Code Online (Sandbox Code Playgroud)
为什么我不能简单地获得:
subfield3 is mysubfield31
subfield3 is mysubfield32
Run Code Online (Sandbox Code Playgroud)
哪里是 ";" 在第二个用作定界符?
这有效:
@echo off
set myarray[1]=myfield1#myfield2#mysubfield31;mysubfield32#myfield4
for /f "tokens=1-9 delims=#" %%a in ("%myarray[1]%") do (
echo field1 is %%a
echo field2 is %%b
echo field3 is %%c
echo field4 is %%d
for /f "tokens=1-9 delims=;" %%k in ("%%c") do (
echo subfield3 is %%k
echo subfield3 is %%l
)
)
pause
Run Code Online (Sandbox Code Playgroud)