如何在powershell

时间:2016-03-01 22:45:37

标签: powershell

我使用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

它显示了详细的堆栈跟踪,但它没有显示文件路径

2 个答案:

答案 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会有一个“内部异常”,所以我的脚本会检查是否存在并转储它。