Makefile For Windows上的循环

时间:2010-01-11 08:34:25

标签: windows makefile

这与我ask here的问题类似。我在Windows XP上运行。

我正在尝试让循环在Windows上运行。根据{{​​3}}的建议,我构造了一个有效的for循环批处理命令:

@echo off
FOR /F "tokens=4 delims=," %%G IN ("deposit,$4500,123.4,12-AUG-09") ^
DO ^
echo Date paid %%G ^ 

并将其放入Makefile中。这是makefile的内容:

all:
    @echo off
    FOR /F "tokens=4 delims=," %%G IN ("deposit,$4500,123.4,12-AUG-09") ^
    DO ^
    echo Date paid %%G ^

但是,我还是犯了一个错误:

  

FOR / F“tokens = 4 delims =,”%% G IN   (“存款,500,123.4,12-AUG-09”)^   make:*** [all]错误255

知道如何解决这个问题吗?

4 个答案:

答案 0 :(得分:1)

我找到了答案,这是在Makefile Windows中运行的正确语法:

all:
    @echo off
    FOR /F "tokens=4 delims=," %%G IN ("deposit,$4500,123.4,12-AUG-09") \
    DO   \
    echo Date paid %%G echo 123

答案 1 :(得分:1)

我发现通过使用&&你可以在for循环中执行多个命令,如下所示:

    for %%i in ($(SOMETHING)) do echo %%i 1 && echo %%i 2 && echo %%i 3

这将打印出类似的内容:

1 1
2 2
3 3

答案 2 :(得分:0)

你的分裂是错误的,不要使用^。请执行以下操作:

@echo off
FOR /F "tokens=4 delims=," %%G IN ("deposit,$4500,123.4,12-AUG-09") DO  (
    echo Date paid %%G
    rem you can put as many lines as you want here, inside of braces
    echo 123
)

答案 3 :(得分:0)

也许您可以从Makefile调用批处理命令文件?

all:
    MyBatch.bat "deposit,$$4500,123.4,12-AUG-09"

MyBatch.bat如下。

@echo off
FOR /F "tokens=4 delims=," %%G IN ("%1") ^
DO ^
echo Date paid %%G ^

小心Makefile中的$。 $是逃避字符,必须加倍才能得到一个真正的$字符串。