如何在目录和子目录中列出URL?

时间:2018-02-02 02:59:27

标签: powershell

我有很多文件已归档到基于云的保管库。文件本身已通过快捷方式在Windows文件树中替换。快捷方式使用原始文件的名称,并在末尾添加了url文件扩展名(例如:" document1.docx.url"或" document2.pdf.url")。 我想生成文件夹和子文件夹中所有快捷方式的列表,以及指向文件库中文件的URL。

我可以很容易地获得.url快捷方式的列表,但是我在列出快捷方式的目标网址时遇到了问题。

到目前为止,我得到的是:

$items = Get-ChildItem -LiteralPath "G:\bss\AIS" |
         Where-Object {$_.Extension -eq ".url"}
$array = New-Object System.Collections.ArrayList

foreach ($item in $items) {
    $array.Add([pscustomobject]@{
        "Name File" = $item.name
        "Path" = $item.FullName
    }) | Out-Null
}
$array | Export-Csv G:\bss\AIS\test.csv

这给了我一个如下所示的CSV文件:

Name File   Path
Admin tips.doc.url  G:\folder1\folder2\Admin tips.doc.url
Cisco_Icon_Library.pdf.url  G:\folder1\folder2\Cisco_Icon_Library.pdf.url
AIS Ta ta for now.jpg.url   G:\folder1\folder2\AIS Ta ta for now.jpg.url

我想要一些看起来像这样的东西:

Name File   Path    URL
Admin tips.doc.url  G:\folder1\folder2\Admin tips.doc.url   http://www.thecloud.com/blahblahblah/Admin tips.doc
Cisco_Icon_Library.pdf.url  G:\folder1\folder2\Cisco_Icon_Library.pdf.url   http://www.thecloud.com/blahblahblah/Cisco_Icon_Library.pdf
AIS Ta ta for now.jpg.url   G:\folder1\folder2\AIS Ta ta for now.jpg.url    http://www.thecloud.com/blahblahblah/AIS Ta ta for now.jpg

是否有一种简单的方法来列出网址?

1 个答案:

答案 0 :(得分:1)

将for循环更改为以下代码段可以解决问题:

foreach ($item in $items)
{
    $array.Add([pscustomobject]@{
        "Name File" = $item.name
        "Path" = $item.FullName
        "URL" = (get-content $item.fullname)[1].Replace("URL=","") }
        ) | Out-null
}