【问题标题】:Makefile For Loop on WindowsWindows 上的 Makefile For 循环
【发布时间】:2010-01-11 08:34:25
【问题描述】:

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

我正在尝试让 for 循环在 Windows 上工作。按照I have to make sure that the command are valid cmd command的建议,我构造了一个有效的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

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

【问题讨论】:

    标签: windows makefile


    【解决方案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
    

    【讨论】:

      【解决方案2】:

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

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

      这将打印出如下内容:

      1 1
      2 2
      3 3
      

      【讨论】:

        【解决方案3】:

        您的拆分错误,请勿使用 ^。执行以下操作:

        @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
        )
        

        【讨论】:

        • 我尝试了你的建议,但它输出了确切的字符串For /F "" .... echo 123),而不是结果。
        【解决方案4】:

        也许您可以从 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 思想中的 $。 $ 是转义字符,必须加倍才能得到一个真正的 $ 字符串。

        【讨论】:

        • 谢谢,但我不认为我想从我的 makefile 调用批处理文件。我更喜欢真正的 makefile windows 语法。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-29
        • 1970-01-01
        相关资源
        最近更新 更多