Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 使用forfiles时,如果出现命令错误,如何使CI脚本失败?_Windows_Batch File_Appveyor - Fatal编程技术网

Windows 使用forfiles时,如果出现命令错误,如何使CI脚本失败?

Windows 使用forfiles时,如果出现命令错误,如何使CI脚本失败?,windows,batch-file,appveyor,Windows,Batch File,Appveyor,我有以下appveyor.yml文件: test_script: - forfiles /m *.mqh /c "mql /s @path" build: off platform: x86 其目的是检查在当前目录中找到的所有源代码文件的语法(/s) 然而,尽管存在编译器错误,最终结果报告为:构建成功 如何使用上述方法使测试脚本失败 我正在寻找类似于Linux上的set-e。编译器在退出时按预期返回1个错误,因为它在Linux上与wine一起使用时工作正常。但是整个构建脚本并没有像预期的那样

我有以下
appveyor.yml
文件:

test_script:
- forfiles /m *.mqh /c "mql /s @path"
build: off
platform: x86
其目的是检查在当前目录中找到的所有源代码文件的语法(
/s

然而,尽管存在编译器错误,最终结果报告为:构建成功

如何使用上述方法使测试脚本失败



我正在寻找类似于Linux上的
set-e
。编译器在退出时按预期返回1个错误,因为它在Linux上与
wine
一起使用时工作正常。但是整个构建脚本并没有像预期的那样失败。

AppVeyor很高兴,因为整个命令返回代码是0。我认为它的返回代码是0,因为上一次迭代很愉快。我不知道如何使其在使用
for files
至少一次迭代失败的情况下返回错误,但对于PowerShell,这应该可以工作:


测试脚本:
-ps:$mqlscript成功=$true
-ps:Get-ChildItem | ForEach对象{if($\.Name.EndsWith(“.mqh”){.\mql/s/mql$env:ver$\\.FullName;if(!$?){$mqlscript成功=$?;写入警告“mlq错误”}
-ps:if(!$MQLScript成功){抛出“至少一个mql测试失败”}

请注意,您还可以将
getchilditem
更改为
getchilditem-Recurse
以获得更深入的覆盖