Я очень новичок в powershell и только начинаю изучать глубину этой прогмы. Моя проблема заключается в том, что я получаю массу информации, и у меня возникают проблемы с ее пониманием и так много противоречивых методов, которые я теряю. Это то, что я пробовал до сих пор, и сообщение об ошибке, которое я получаю. Если кто-нибудь может сказать мне, что я делаю неправильно, и хотя бы дать подсказку, как это исправить, я был бы очень доволен. Заранее спасибо.Сценарий для извлечения имени файла из файла m3u в powershell
Script
$PlaylistName = Read-Host 'Playlist filename (Include drive and path):'
$Directory = Read-Host 'Target Directory (Include drive and path):'
Write-Host "Searching "$PlaylistName" for media files and copying to "$Directory"`n"
Get-Content $PlaylistName | where {$+.trim() -ne "" } | Out-File Temp.txt
get-content Temp.txt | select-string -pattern "#EXTINF:0" -notmatch | Out-File Musiclist.txt
плейлиста здесь: https://gist.github.com/zipster1967/ddc5ce0d81e70f3e59cf0dfb2b224704
Когда я запускаю этот сценарий, я получаю следующее сообщение об ошибке, и я не уверен, что это значит.
At line:4 char:44 + Get-Content $PlaylistName | where {$+.trim() -ne "" } | Out-File Temp ... + ~ An expression was expected after '('. + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : ExpectedExpression
Линия
Get-Content $PlaylistName | where {$+.trim() -ne "" } | Out-File Temp.txt
я получил от http://www.pixelchef.net/remove-empty-lines-file-powershell
Хорошо на основе предложений, в настоящее время у меня есть частично рабочий сценарий. Я получил все файлы в текстовый файл с именем temp.txt с помощью сценария следующим образом:
$PlaylistName = Read-Host 'Playlist filename (Include drive and path):'
$Directory = Read-Host 'Target Directory (Include drive and path):'
Write-Host "Searching "$PlaylistName" for media files and copying to "$Directory"`n"
Get-Content $PlaylistName | ? { $_ -and (Test-Path $_) } | Out-File Temp.txt
Теперь я просто должен понять, как получить команду копирования элемента, чтобы прочитать файл temp.txt и скопировать файлов в папку $ Directory. Я предполагаю, что мне нужно добавить строку
Get-Content Temp.txt | Copy-Item -Destination $Directory
Надеюсь, что это правильно. (Тем не менее есть много, чтобы учиться в PowerShell.)
'$ +' - ошибка, это должно быть '$ _'. – majkinetor
ваш источник, pixelchef, показывает правильное использование $ _ вместо $ +. – Martin