我想在VSTS中的发布任务中运行IF EXIST
命令,但我不确定如何拆分代码以运行命令,文档并不清楚实际上是什么是一个论点。
我想要运行的行是
IF EXIST C:\Users\user\Documents\folder_name ( rmdir /s folder_to_delete /Q )
如果我在命令行中运行它运行得很好,但我无法将其转换为VSTS命令行工具字段。
# In Tool field:
IF EXIST 'C:\Users\user\Documents\folder_name' ( rmdir /s 'folder_to_delete' /Q )
# In tool field:
IF EXIST 'C:\Users\user\Documents\folder_name' ( rmdir /s 'C:\path\to\folder_to_delete' /Q )
# In tool field:
IF EXIST C:\Users\user\Documents\folder_name rmdir /s 'folder_to_delete' /Q
# In tool field:
IF EXIST C:\Users\user\Documents\folder_name rmdir folder_to_delete
# In tool field:
IF EXIST C:\Users\user\Documents\folder_name ( rmdir folder_to_delete)
# In Arguments field:
/s /Q
# In tool field:
IF EXIST
# In Arguments field:
C:\Users\user\Documents\folder_name rmdir folder_to_delete
使用'
或"
dirct或相对路径进行迭代时,这些都不起作用。
我得到的错误消息:
该命令的语法不正确。
答案 0 :(得分:0)
解决方案是
# In Tool field:
IF
# In Arguments field:
EXIST C:\Users\user\Documents\folder_name ( rmdir /s folder_to_delete /Q )
通过查看widows command documentation,我们可以看到唯一的命令是IF
。其他一切都是命令。
EXIST
是IF
的选项命令,其他示例可以是DEFINED
和ERRORLEVEL
,两者都可以与条件NOT
结合使用。
将uri周围的'
放到文件夹是可选的,除非你在uri中有空格,然后它们是一个转义空格的选项。
由于arguments字段是一个行字段,因此您不需要使用括号;它们是一种语法,允许您的命令行接受多行参数。作为替代方案,您可以使用&
示例:
# In Tool field:
IF
# In Arguments field:
EXIST C:\Users\user\Documents\folder_name echo removing dir! & rmdir /s folder_to_delete /Q
语法仍允许您使用括号,但不是必需的。但是,如果您希望将IF
与ELSE
合并,则确实需要它们:
IF NOT EXIST folder (mkdir folder) ELSE (echo Folder exists!)