在有空格的 Window 批处理 FOR 循环中将参数传递给 Perl 程序

问题描述 投票:0回答:1

我有以下批处理文件:

@echo off
set GENDER_LIST=M F
set AGE_GROUP_LIST="[20, 30)" "[30, 40)"

for %%G in (%GENDER_LIST%)    do (
for %%A in (%AGE_GROUP_LIST%) do (
perl argvSample.pl "%%G %%A"
echo ---------------
)
)

以及以下 Perl 程序:

use strict;

print "\"".join("\", \"", @ARGV)."\"\n";

运行批处理会导致以下意外输出:

"M [20,", "30)"
---------------
"M [30,", "40)"
---------------
"F [20,", "30)"
---------------
"F [30,", "40)"
---------------

我希望它输出以下内容:

"M [20, 30)"
---------------
"M [30, 40)"
---------------
"F [20, 30)"
---------------
"F [30, 40)"
---------------

我应该如何修复批处理文件以获得所需的输出?

windows perl batch-file
1个回答
0
投票
"%%G %%A"

产生

"F "[30, 40)""

替换为

"%%~G %%~A"
© www.soinside.com 2019 - 2024. All rights reserved.