如何解决外部命令静默失败的Powershell错误
| 我有一个复杂的Powershell脚本,该脚本使用远程处理,并且执行许多文件复制以及PowerShell模块的加载和卸载。在脚本中,我使用robocopy仅移动更改文件,一切正常。 但是,PowerShell会话时不时地进入一种奇怪的状态,即它不再执行外部命令。例如,如果我在控制台中键入robocopy,它将立即返回,没有错误,也没有输出。如果输入whoami,它将再次立即返回而没有任何输出。在同一脚本的10次执行中,它仅进入大约1个这种状态。 如果我关闭控制台并开始新的会话,一切将恢复正常。知道这里发生了什么吗?我想不出一种方法来调试或修复此状态。 谢谢, 麦克风 更新资料 似乎存在将数组传递到写入主机的已知问题,这可能导致此行为。我不相信自己正在这样做,但是很难确定。当whoami的结果为空时,我设法进行了陷阱测试。奇怪的是,它在等待长时间运行的远程操作时发生。解决方法
不幸的是,我没有答案,但是我也看到了这种确切的行为,我可以添加一些见解。我知道我不使用写主机,并且仅当我使用Powershell V2的后台作业并一起进行远程处理时才会出现此问题。通常,这是在我运行了大量的后台作业之后发生的,并且就像您一样,问题只存在于单个Powershell进程中。重新启动Powershell总是可以解决问题。
, 对于可能遇到此问题的任何人-检查所有具有写主机的行-在我的情况下,罪魁祸首是脚本中的以下行:
写主机******************************************
最后,它被用作所有循环已完成的可视标记,并且在其下方有一个摘要...一旦删除它,命令就会执行。如果添加它,它们将停止执行...也许星号溢出了一些缓冲区?不确定,但是我永远不会再使用它们了... :)
, 如果您在robocopy命令中使用/ R选项,请尝试增加重试次数。最好使用默认值。
希望这能正常工作。
-Archit
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。