PowerShell中无法捕获docker cp命令返回值问题求助
问题原因及解决办法
核心原因:Docker命令的输出流差异
docker ps这类查询类命令会把结果输出到标准输出(stdout),PowerShell中$变量 = 命令的写法默认只捕获标准输出的内容,所以你能正常获取到$dockerID。docker cp的成功提示信息是输出到**标准错误流(stderr)**的,PowerShell默认不会将标准错误流的内容存入变量,因此$return为空,但命令实际已经执行成功。
验证输出流的方法
执行以下命令可以将标准错误流重定向到标准输出,从而看到原本的成功消息:docker cp <dockerid>:path/file localpath/file 2>&1捕获成功消息的解决办法
显式将标准错误流重定向到标准输出,就能把成功消息存入变量:$return = docker cp <dockerid>:path/file localpath/file 2>&1
内容的提问来源于stack exchange,提问作者dpewissberg
相关产品推荐
相关产品推荐

