在 Powershell 中解析快捷方式 [英] Parsing Shortcuts in Powershell

查看:58
本文介绍了在 Powershell 中解析快捷方式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一些代码试图复制包含快捷方式的目录:

I have some code which is trying to make a copy of a directory which contains shortcuts:

 # Create a directory to store the files in
 mkdir "D:\backup-temp\website.com files\"

 # Search for shortcuts so that we can exclude them from the copy
 $DirLinks = Get-ChildItem "\\web1\c$\Web Sites\website\" -Recurse | ? { $_.Attributes -like "*ReparsePoint*" } | % { $_.FullName } 

 # Execute the copy
 cp -recurse -Exclude $DirLinks "\\web1\c$\Web Sites\website\*" "D:\backup-temp\website.com files\"

但是当我执行脚本时出现以下错误:

But when I execute the script I get the following error:

 Copy-Item : The symbolic link cannot be followed because its type is disabled.
 At C:\scripts\backup.ps1:16 char:3
 + cp <<<<  -recurse "\\web1\c$\Web Sites\website\*" "D:\backup-temp\website.com files\"
     + CategoryInfo          : NotSpecified: (:) [Copy-Item], IOException
     + FullyQualifiedErrorId :          
 System.IO.IOException,Microsoft.PowerShell.Commands.CopyItemCommand

脚本似乎挂在一个符号链接上(我假设是快捷方式),我试图在脚本的第四行排除该链接.

It seems the script is getting hung up on a symbolic link (I'm assuming the shortcut) that I'm trying to exclude in the fourth line of the script.

如何告诉 powershell 忽略/排除快捷方式?

How can I tell powershell to ignore/exclude shortcuts?

谢谢,布拉德

推荐答案

如果您使用的是 V3 或更高版本,您可以像这样消除重解析点:

If you are on V3 or higher you can eliminate the reparse points like so:

Get-ChildItem "\\web1\c$\Web Sites\website" -Recurse -Attributes !ReparsePoint | 
    Copy-Item -Dest "D:\backup-temp\website.com files"

在 V1/V2 上,您可以这样做:

On V1/V2 you can do this:

Get-ChildItem "\\web1\c$\Web Sites\website" |
    Where {!($_.Attributes -bor [IO.FileAttributes]::ReparsePoint)} |
    Copy-Item -Dest "D:\backup-temp\website.com files" -Recurse

这篇关于在 Powershell 中解析快捷方式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆