11

当 stdout/stderr 未重定向时,脚本运行良好。

当我添加 stderr 和 stdout 重定向时,我得到以下错误:如何避免它?

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0 19.4M    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
 81 19.4M    0     0   81 15.9M      0  54.5M --:--:-- --:--:-- --:--:-- 55.8M
100 19.4M    0     0  100 19.4M      0  14.2M  0:00:01  0:00:01 --:--:-- 14.3M
100 19.4M    0     0  100 19.4M      0  8428k  0:00:02  0:00:02 --:--:-- 8454k
100 19.4M    0     0  100 19.4M      0  5924k  0:00:03  0:00:03 --:--:-- 5937k
100 19.4M    0     0  100 19.4M      0  4567k  0:00:04  0:00:04 --:--:-- 4575k
100 19.4M    0    50  100 19.4M     10  4291k  0:00:04  0:00:04 --:--:--  835k
out-lineoutput : The OS handle's position is not what FileStream expected. Do not use a handle simu
ltaneously in one FileStream and in Win32 code or another FileStream. This may cause data loss.
    + CategoryInfo          : NotSpecified: (:) [out-lineoutput], IOException
    + FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.OutLineOutputCom 
   mand
4

2 回答 2

15

Lee Holmes(powershell 团队的高级开发人员之一)在博客文章中介绍了这一点:

http://www.leeholmes.com/blog/WorkaroundTheOSHandlesPositionIsNotWhatFileStreamExpected.aspx

这是 PowerShell v1.0 中的错误,发生在以下情况:

  • PowerShell 命令生成常规输出和错误输出
  • 您已使用 cmd.exe 将输出重定向到文件
  • 您已使用 cmd.exe 合并输出和错误流

有一种解决方法。

-Oisin

于 2009-09-14T16:13:55.870 回答
0

我曾经在需要应用“GetItemChild”的目录中有几个硬链接结点,并收到与此问题相同的错误。

删除连接解决了这个问题。

于 2010-01-25T16:55:56.280 回答