小编Mar*_*ean的帖子

PowerShell脚本只导出文件名列表而没有文件扩展名,然后输出到每个目录单独的文本文件

我需要一个PowerShell脚本来导出文件名列表,只有没有文件扩展名,然后输出到每个子文件夹单独的文本文件.我需要在脚本中指定父目录,然后PowerShell需要关闭并使用文件名的子文件夹名称为每个子文件夹创建单独的文本文件(没有空格和小写).然后,在创建的每个基于子文件夹的文本文件中,都有一个文件名列表,这些文件名包含在每个子文件夹中,没有文件扩展名.

$files = Get-ChildItem -Path "M:\Music" -Recurse `
| Where-Object {`
    $_.DirectoryName -notlike "*Other\Children" -and `
    $_.DirectoryName -notlike "*Other\Numbers" -and `
    $_.Extension -eq ".mp3"}
#Now loop through all the subfolders
$folder = $files.PSisContainer
ForEach ($Folder in $files)
{
$ParentS = ($_.Fullname).split("\")
$Parent = $ParentS[@($ParentS.Length - 2)]
Select-Object BaseName > C:\Users\me\Documents\$parent.txt
}
Run Code Online (Sandbox Code Playgroud)

好的,花了一些时间在这上面,脚本在下面添加到上一次尝试.看起来我这次非常接近,但最后写入文本文件不是100%,我使用Out-File之前在每个文本文件的底部留下一个我不想要的空白行.为什么我切换到[system.io.file] :: WriteAllText和[system.io.file] :: AppendAllText,但是每个都有他们的特性不能满足我的需要.在文本文件中,我需要一列中没有空行的文件列表.

$files = Get-ChildItem -Path "M:\Music" -Recurse `
| Where-Object {`
    $_.DirectoryName -notlike "*Other\Children" -and `
    $_.DirectoryName -notlike "*Other\Numbers" -and `
    $_.Extension -eq ".mp3"}
#Now …
Run Code Online (Sandbox Code Playgroud)

powershell powershell-ise powershell-2.0 powershell-3.0

6
推荐指数
1
解决办法
4万
查看次数

RegEx PowerShell匹配

我有以下网站http://www.shazam.com/charts/top-100/australia显示歌曲,我想用RegEx和PowerShell捕捉歌曲.下面的PowerShell代码是我到目前为止的代码:

    $ie = New-Object -comObject InternetExplorer.Application
    $ie.navigate('http://www.shazam.com/charts/top-100/australia')
    Start-Sleep -Seconds 10
    $null = $ie.Document.body.innerhtml -match 'data-chart-position="1"(.|\n)*data-track-title=.*content="(.*)"><a href(.|\n)*data-track-artist=\W\W>(.|\n)*<meta\scontent="(.*)"\sitemprop';$shazam01artist = $matches[5];$shazam01title = $matches[2]
Run Code Online (Sandbox Code Playgroud)

数据图表位置

数据轨道标题

数据跟踪艺术家

列出的每首歌曲都有3个值(上图)与每个歌曲相关联,我想根据不同的图表位置(数字)捕捉每首歌曲的艺术家和标题.所以正则表达式找到实际的图表位置,然后是尾随的艺术家和标题.

如果我单独为艺术家和标题(下面的代码)运行RegEx,它会找到它们,但它只找到第一个艺术家和标题.我需要根据不同的图表位置找到每首歌曲的艺术家和标题.

$null = $ie.Document.body.innerhtml -match 'data-track-artist=\W\W>(.|\n)*<meta\scontent="(.*)"\sitemprop';$shazam01artist = $matches[2]
$null = $ie.Document.body.innerhtml -match 'data-track-title=.*content="(.*)"><a href';$shazam01title = $matches[1]
$shazam01artist
$shazam01title
Run Code Online (Sandbox Code Playgroud)

regex powershell powershell-3.0

3
推荐指数
1
解决办法
239
查看次数

使用RegEx与PowerShell匹配

我有一个庞大的音乐库,我使用PowerShell/RegEx来查找特定的歌曲.我很难找到我需要的确切艺术家.例如,这段代码:

$artist = "Paul Young"
$allsongsRAW = Get-ChildItem -Path "C:\Music" -Recurse | Where-Object {$_.Extension -eq ".mp3"}
($allsongsRAW -match "(\s*$artist\s(-|\W)\s*)" | Sort-Object {Get-Random}).Name
Run Code Online (Sandbox Code Playgroud)

返回:

Paul Young - Everything Must Change.mp3
Paul Young - Come Back And Stay.mp3
Paul Young - Everytime You Go Away.mp3
John Paul Young - Love Is In The Air.mp3
Paul Young - Wherever I Lay My Hat (That's My Home).mp3
Paul Young - What Becomes Of The Brokenhearted.mp3
Paul Young - Love of the Common People.mp3
Run Code Online (Sandbox Code Playgroud)

这段代码: …

regex powershell

3
推荐指数
1
解决办法
6695
查看次数

PowerShell RegEx 匹配所有可能的匹配项

我有以下脚本,其中包含一些 RegEx 来捕获此站点上的特定信息。

$Top40Response = Invoke-WebRequest -UseBasicParsing -Uri 'https://www.radioinfo.com.au/knowledge/chart'

$Top40Response.Content -match '<td\Wclass="twRank">[\s\S]+artist">([^<]*)'
$matches
Run Code Online (Sandbox Code Playgroud)

这是匹配最后一个“艺术家”。我想要做的就是制作它,以便它会按照从上到下的顺序贯穿并匹配此页面上的每个艺术家。

regex powershell

3
推荐指数
1
解决办法
3464
查看次数