2013-07-04 4 views
0

Я хотел бы сканировать каталог для файлов .htm, а затем генерировать гиперссылки на эти .htm-файлы и выводить результат в новый HTML-документ. Каков наилучший способ достичь этого?Как сгенерировать гиперссылки на файлы .htm в каталоге в Powershell?

До сих пор у меня есть это:

Get-ChildItem "C:\test1\*.htm" -Recurse -Force | 
    ConvertTo-Html -Fragment FullName, Name ` 
    -PreContent '<html><head><title>Test</title></head><body>' ` 
    -PostContent '</body></html>' | 
    % { $_ -replace '<th>.*</th>','<th>Files</th>' ` 
     -replace '<td>(.*?)</td><td>(.*?)</td><td>(.*?)</td>', 
        '<td><a href="$1">$2</a> $3</td>' 

    } | Set-Content "C:\$env:COMPUTERNAME-$(Get-Date -f dd-MM-yyyy-hh-mm-ss).htm" 

ответ

1

Вы могли бы попробовать что-то вроде этого:

Get-ChildItem "C:\*.htm" -Recurse -Force | 
    ConvertTo-Html -Fragment FullName, Name, LastWriteTime ` 
    -PreContent '<html><head><title>Test</title></head><body>' ` 
    -PostContent '</body></html>' | 
    % { $_ -replace '<th>.*</th>','<th>Files</th>' ` 
     -replace '<td>(.*?)</td><td>(.*?)</td><td>(.*?)</td>', 
        '<td><a href="$1">$2</a> $3</td>' 

    } | Set-Content "C:\$env:COMPUTERNAME-$(Get-Date -f dd-MM-yyyy).htm" 
+0

Я изо всех сил пытаюсь принять приведенный выше код, чтобы заставить его генерировать файлы .htm. Я пробую следующую версию кода выше: ** Get-ChildItem «C: \ *. Htm» -Recurse -Force | $ Ь = ConvertTo-Html -Fragment Имя, LastWriteTime ' -PreContent ' Test'' -PostContent '' | % {$ _ -replace '. *', ' Files '' -replace' (. *?) (. *?) (. *?)', '$2 $ 3 ' } $ b | Set-Content c: \ "$ env: computername - $ (get-date -f dd-MM-yyyy)". Htm ** – Gazel

+0

Это не работает: '... | $ b = ... '. Вы не можете подключиться к оператору присваивания. Я добавил «Set-Content» в свой ответ. –

+0

Спасибо за ваш ответ. теперь код генерирует файл .htm, но он не вставляет гиперссылки на отсканированные файлы. Я новичок в Powershell, поэтому не знаю, где эта проблема. ценю вашу помощь. – Gazel