我使用powershell复制文件夹和文件。以下是使用
的命令Copy-Item "C:\source" "C:\destination" -recurse
我收到错误
Copy-Item:指定的路径,文件名或两者都太长。完全限定的文件名必须为le 字符和目录名称必须少于248个字符。 在行:1个字符:1 + Copy-Item" C:\ source" " C:\目的地" -recurse + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:WriteError:(component.json:FileInfo)[Copy-Item],PathTooLongException + FullyQualifiedErrorId:CopyDirectoryInfoItemIOError,Microsoft.PowerShell.Commands.CopyItemCommand
我理解错误,但我想知道哪个文件有问题所以我可以解决它。错误不显示实际文件
我尝试使用
$error[0]|format-list -force
它显示了详细的堆栈跟踪,但它没有显示文件路径
答案 0 :(得分:0)
$error
数组由ErrorRecords
组成。您可以通过ErrorRecord
查看$error|get-member
中的属性和方法。除此之外,您还会看到ErrorDetails, Exception, and TargetObject
属性。在许多情况下,这些属性中的一个或多个将具有其他有用信息。
在你的情况下TargetObject
是一个不错的选择。我尝试在系统上复制一个不存在的文件,并将TargetObject
设置为无效的文件名。要查看您可以使用:$error[0].TargetObject|select *
。
答案 1 :(得分:0)
$error
数组由ErrorRecords
组成。您可以通过ErrorRecord
查看$error|get-member
中的属性和方法。除此之外,您还会看到ErrorDetails, Exception, and TargetObject
属性。在许多情况下,这些属性中的一个或多个将具有其他有用信息。
在你的情况下TargetObject
是一个不错的选择。我尝试在系统上复制一个不存在的文件,并将TargetObject
设置为无效的文件名。要查看您可以使用:$error[0].TargetObject|select *
。
我的个人资料中有一个脚本输出$error[0]
以及上面列出的一些属性。有时候$error[0].exception
会有一个“内部异常”,所以我的脚本会检查是否存在并转储它。