1

有人可以告诉我以下命令行中不正确的内容是什么吗?

${WORKSPACE} = C:\jenkins\workspace\compile-job

cmd.exe /s /c START /b /BELOWNORMAL
mkdir C:\jenkins\workspace\old
move /Y %WORKSPACE%\* C:\jenkins\workspace\old
rmdir /q /s C:\jenkins\workspace\old
4

1 回答 1

1

很多。

  1. ${WORKSPACE} = ...既不cmd是 PowerShell 语法,也不是 PowerShell 语法,这毫无意义。利用

    set WORKSPACE=C:\jenkins\workspace\compile-job
    

    反而。

  2. 您可以通过以 . 结束之前的行来获得多行命令^。但是,您想要执行三个命令,而不仅仅是一个。一种选择是编写一个批处理文件来执行(当然是最干净的方法)。但既然你已经有了一个,你可以变得聪明:

    if not %1==x (
      START "" /b /BELOWNORMAL %0 x
      goto :eof
    )
    
    set WORKSPACE=C:\jenkins\workspace\compile-job
    
    mkdir C:\jenkins\workspace\old
    move /Y %WORKSPACE%\* C:\jenkins\workspace\old
    rmdir /q /s C:\jenkins\workspace\old
    

    这将再次执行批处理文件,但带有一个参数,在批处理中,我们查看该参数是否存在并完成工作。

于 2012-11-12T11:27:30.227 回答