【问题标题】:Batch file for loop statement循环语句的批处理文件
【发布时间】:2009-08-25 15:58:33
【问题描述】:

我把批处理文件放在下面;我对批处理文件没有太多经验,我无法弄清楚为什么文件失败并显示错误消息:

DO 命令出乎意料。

看看下面的代码,有没有人知道我做错了什么?谢谢。

@ECHO OFF
REM Set arguments supplied by Subversion 
SET REPOS = %1
SET REV = %2

REM Set working directory path 
SET WORKSPACE = D:\apache\htdocs

REM Assign changes to variable 
SET CHANGES = svnlook changed %REPOS% -r %REV% 

REM Update only changed files  
FOR /f %%a IN %CHANGES% DO svn update %%a

【问题讨论】:

    标签: windows batch-file for-loop


    【解决方案1】:
    FOR /f %%a IN %CHANGES% DO svn update %%a
    

    应该是

    FOR /f %%a IN (%CHANGES%) DO svn update %%a
    

    希望对你有帮助,

    【讨论】:

      【解决方案2】:

      我猜%CHANGES% 的循环格式/结构不正确,因此无法执行DO。在循环之前添加以下行以检查您是否从SET CHANGES 命令中获得了预期;

      ECHO %CHANGES%
      

      如果分配要执行更多批处理代码,您可能需要使用CALL。调用%1%2 的批处理文件时传入了什么?

      【讨论】:

      • 另一个程序实际上应该调用这个批处理文件并传递一个目录和一个整数值。我添加了代码来回显 %1 和 %2 参数;当我自己测试批处理文件并将值传递给它时,批处理代码回显空白,表明未分配传递的参数,即 post-commit.bat file:///d:/repos 10 知道为什么参数不是被分配了?
      • @Dave Anderson:Binary Worrier 的建议在正确的轨道上,但并不完全;代码需要“usebackq”选项和反引号。
      【解决方案3】:

      您可以尝试在没有 REM 语句的情况下运行它吗?评论有时会让事情变得不同。

      【讨论】:

        【解决方案4】:

        修改我的原始代码后,我已经让它“工作”了。 svnlook 命令返回例如:trunk\images\smileyface.jpg

        目前,for 循环仅返回我想要的“U”而不是“笑脸.jpg”。因此,虽然代码现在可以正常工作,但它确实可以按照我的意愿运行(仍在研究中)。

        以下是修改后的代码(注意:我必须删除变量及其赋值之间的所有空格)。

        @ECHO OFF
        REM Set arguments supplied by Subversion 
        SET REPOS=%1
        SET REV=%2
        
        REM Set working directory path 
        SET WORKSPACE=D:\apache\htdocs
        
        REM Assign changes to variable 
        SET CHANGES=svnlook changed %REPOS% -r %REV% 
        
        REM Update only changed files  
        FOR /F "usebackq" %%a IN (`%CHANGES%`) DO (svn update %%a)
        

        【讨论】:

          猜你喜欢
          • 2012-07-30
          • 2023-03-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-10-21
          • 1970-01-01
          • 1970-01-01
          • 2023-03-23
          相关资源
          最近更新 更多