【发布时间】:2018-04-13 20:23:53
【问题描述】:
我有一个脚本,它执行从一个 Windows 共享到另一个的复制项目,偶尔会显示错误“无法访问该文件,因为它正被另一个进程使用”。执行此操作的代码如下,并且已经包含 -ErrorAction SilentlyContinue 但控制台上仍然出现错误:
Get-ChildItem $sourceDir -Filter $itemNum*.* | ForEach {
Copy-Item -LiteralPath $sourceDir\$_ -Destination $destDir -ErrorAction SilentlyContinue
}
我有额外的代码可以在无法复制项目时处理完美的工作,我只是不希望红色错误消息显示在控制台上。由于“-errorAction SilentlyContinue”似乎不起作用,是否有替代方法?
PS。总是导致问题的文件类型是 .msg 文件。为什么这些会有问题?我一直认为这是因为它们嵌入了附件和文件等,并且可能由于 GCI 对它们的 GCI 被 on access AV 扫描?
Powershell 是在 Windows Server 2008 上运行的 3.0 版。
【问题讨论】:
-
您的
Get-ChildItem是否生成错误?还是Copy-Item?如果没有错误消息的详细信息,我们无法判断。 -
SilentlyContinue隐藏非终止错误,而不是终止错误。 (PowerShell中有两种错误。)要捕获终止错误,您需要try/catch。
标签: file powershell