From d26ad2b65e29450916937d1d686b5d7ff0267b9c Mon Sep 17 00:00:00 2001 From: pcnick Date: Sun, 10 Aug 2025 13:46:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=9B=A0=E8=B7=AF=E5=BE=91?= =?UTF-8?q?=E5=BC=95=E7=99=BC=E7=9A=84=E6=AA=94=E6=A1=88=E8=B3=87=E6=96=99?= =?UTF-8?q?=E5=A4=BE=E5=8F=96=E5=BE=97=E9=8C=AF=E8=AA=A4=E5=95=8F=E9=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Animelibk.ps1 | 11 ++++++----- NameRegex.psm1 | 39 +-------------------------------------- PathChar.psd1 | Bin 4738 -> 4738 bytes PathChar.psm1 | 46 +++++++++++----------------------------------- 4 files changed, 18 insertions(+), 78 deletions(-) diff --git a/Animelibk.ps1 b/Animelibk.ps1 index b16681e..18933eb 100644 --- a/Animelibk.ps1 +++ b/Animelibk.ps1 @@ -3,7 +3,7 @@ $Index = "H:\AnimeLib", $VarConfig, $RecorDB = "animelibk.ini", - $Include = @(".rmvb", ".mp4", ".mkv", ".ass", ".ssa"), + $Include = @(".rmvb", ".mp4", ".mkv", ".avi", ".ass", ".ssa"), [switch] $Single, [switch] $Force, [switch] $Sub, @@ -94,7 +94,7 @@ $Year = @($($JsonPath -replace '.*\\((?\d{4})?(?\d{2})?).*$', '${Y}'), $(g # 依目標檔案位置變更磁碟代號 $TargetDrive = Split-Path -Path $JsonPath -Qualifier if (Split-Path -Path $Index -IsAbsolute) { - if ($Index -match $TargetDrive) { + if ($Index -notmatch $TargetDrive) { $Index2 = Join-Path -Path $TargetDrive -ChildPath (Split-Path -Path $Index -noQualifier) } else { $Index2 = $Index @@ -102,6 +102,7 @@ if (Split-Path -Path $Index -IsAbsolute) { } else { $Index2 = Join-Path $TargetDrive $Index } +Write-Host $Index2 # 取得目標資料夾是否存在,不存在建立資料夾,並取得資料夾物件 $LinkPath = "{2}\{0}\{1}" -f $WorkData.DestinName, $($Lang["Season"] -f $WorkData.Season), $Index2 $LinkDir = $(if (-not(Test-Path -Path "$LinkPath*")) { @@ -160,7 +161,7 @@ if ($Single) { # 單集模式 $List = @(Get-Item -Path $(Edit-PathChar $Path)) $BuildList = $List | select $FileObj, $StructPathObj, $NewNameObj | ? {$_.NewName.Episode -notin $WorkData.Episode} - #$BuildList | ? {$_.NewName.Episode -notin $WorkData.Episode} | Format-List + #$BuildList | ? {$_.NewName.Episode -notin $WorkData.Episode} | Format-List } elseif ($Sub) { $List = @(Get-Item -Path $(Edit-PathChar $Path)) $BuildList = $List | select $FileObj, $StructPathObj, $NewNameObj | ? {$_.File.Extension -in @(".ass", ".ssa")} @@ -178,7 +179,7 @@ $ENDResult = $BuildList | % { $Command = @{ ItemType = 'HardLink' Path = $("{0}\{1}" -f $_.StructPath, $_.NewName.newFullName) - Target = $(Edit-PathChar $_.File.Fullname) + Target = $(Edit-PathChar $_.File.Fullname -nowlid) } #try { if (New-Item @Command) { @@ -192,4 +193,4 @@ $ENDResult = $BuildList | % { #$ENDResult.gettype(); if (-not($Sub)) { $ENDResult | % { if ($_.Episode) { $WorkData.Episode += $_.Episode }}} $WorkData | ConvertTo-Json | Out-File -Encoding "UTF8" $RecorDB -exit 0; \ No newline at end of file +exit 0; diff --git a/NameRegex.psm1 b/NameRegex.psm1 index 4020d82..23e986d 100644 --- a/NameRegex.psm1 +++ b/NameRegex.psm1 @@ -44,42 +44,5 @@ #Write-Host $Str # Regex 可輸入複數個 - $Regex | % { @{ Target = $Str; Regex = $_; } } | &$InnerScrip + $Regex | ForEach-Object { @{ Target = $Str; Regex = $_; } } | &$InnerScrip } - -# Example -# $RS1 | % { Get-NameRegex $_["L"] -Regex $NameRegex -Exclude "(BD|DVD|HDTV)RIP" -End } -# $TestName | % { Get-NameRegex $_ -Regex $Regex } | % { $(Get-NameRegex $_["L"] -Regex $NameRegex -Exclude "(BD|DVD|HDTV)RIP" -End) + $_ } -# SIG # Begin signature block -# MIIFxwYJKoZIhvcNAQcCoIIFuDCCBbQCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB -# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR -# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQU2SfubhaWpugweGH+53eZ/igq -# VQOgggNSMIIDTjCCAjagAwIBAgIQdMnAQ4BDAo9Lgfn+QeDdhjANBgkqhkiG9w0B -# AQUFADAqMRMwEQYDVQQDDApOaWNrIENoYW5nMRMwEQYDVQQKDAplYXJpY2sub3Jn -# MB4XDTIxMTAzMTEwMDI1MVoXDTIyMTAzMTEwMjI1MVowMzEiMCAGCSqGSIb3DQEJ -# ARYTcGNuaWNrMTAwQGdtYWlsLmNvbTENMAsGA1UEAwwETmljazCCASIwDQYJKoZI -# hvcNAQEBBQADggEPADCCAQoCggEBAMEnEk3/5rkEMibDbbfOXQaerk5xXSJmY8gf -# FAVUbrGfjzYHcRsPRzdb/pstcZGS2XUCoX2a57lQhACStns9dXeYfWhzNeAiSEAy -# iaJzUj5ELcH5TzT+mjeJQX6upeHOexO1TmtuM6mugpl9SvNQFqbQXlPHHmoLE3OC -# UzzjEC0AkHkcSiLdqtmSbRmaomcDMbtJgZHUciWE/p6mmAbpv2R4rdKSYSiI8UsE -# UclzkeTNrYKmJNiM0R+X1LyZVY6HAHN8dR3tjBnEPYoPxRAz4d2FEajvumzosNUr -# ni9LROnRxQXa048ZcsNArNZDQXe+Rc+PWhzbqHhy8rBllgZ08XkCAwEAAaNnMGUw -# DgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMB8GA1UdIwQYMBaA -# FBXyUrhn78ppKe7GRmHS6vbsNae/MB0GA1UdDgQWBBRs5+Yfb/14jwpjUNpTUuR1 -# 759t9TANBgkqhkiG9w0BAQUFAAOCAQEACSL1BqUcrqh+bBqr5rQ5mArCVxsBW92r -# HenPY48dKdhGgMODtxuo7osZLk7Il+aXhAsvNTSfmc92H5eDXFqZ565jm8r6FF1C -# f1oKxznmtxd4oyXflCRqBz+OGuXLq8dG9gWT7OisKWe0hifSMGaZ9afpNeiFLuD1 -# GSGk5E0W+bUyezCmjOdNWYIW452brt8rJS21WWVVvrsGjgJoTdsoAkFek8OEm82+ -# 1UR7xZOHybLvi8N0gvD+UFlVvcv6pmgUqaz5DS7J2si75Xj9pThE6/bPu/fkpc53 -# gMbleXNaqXIKeJTbI5hi2crlKyXBe/GfuK0Tv+06S1sL32VAs1VwmjGCAd8wggHb -# AgEBMD4wKjETMBEGA1UEAwwKTmljayBDaGFuZzETMBEGA1UECgwKZWFyaWNrLm9y -# ZwIQdMnAQ4BDAo9Lgfn+QeDdhjAJBgUrDgMCGgUAoHgwGAYKKwYBBAGCNwIBDDEK -# MAigAoAAoQKAADAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3 -# AgELMQ4wDAYKKwYBBAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQUoqQp8TNHQrFdDrpM -# 6+iDq3QvqIUwDQYJKoZIhvcNAQEBBQAEggEApo8NtKRWXRdAxdmJMSYorrOWC1ra -# NaN0N3UbhQKTAjbN3sYP4oZmOiEftQn5Ot0JztpYAb29Ge//R+0EGQR69IoGMgr0 -# X5toFyWFle3ddKu3swsFv9dJI4vYSW1Pce13kBdp+2a7hCF/6kS1aYDLEdEYhcwq -# 8rqRSNtr73Ro00eMVSm72GRv709ouWK5jCqCPq6r/7O4UZvyiqyF4Oq8fZDAsWlK -# Tc5zLTtnaIysgvAZm7izn0oSD/kLx6hv7wGNp7yVSUkNq7a7qu34Brs5eQtZyblj -# JbZPtDYY0++t5xgHskpigkAVej3B1TkNg1rH1EJ49JX10yeIq7JEMS4u8Q== -# SIG # End signature block diff --git a/PathChar.psd1 b/PathChar.psd1 index 61ff9d323e5bf5a0fb54de1d67d806a85b7e3da6..c48a7d8db00a428e48758993da179de15f23bf65 100644 GIT binary patch delta 14 VcmZotZBpHk#K>s8Ihj#j5C9>n1Kj`s delta 14 VcmZotZBpHk#K>s4Ihj#j5C9>b1KR)q diff --git a/PathChar.psm1 b/PathChar.psm1 index 450ac2b..e88bb99 100644 --- a/PathChar.psm1 +++ b/PathChar.psm1 @@ -1,41 +1,17 @@ function Edit-PathChar { param( $Str, - $Char = "[\[\]]" + $Char = "[\[\]]", + [switch] $nowlid ) - $Str -replace "(${Char})", '`$1' + if($nowlid) { + $fstr = "(${Char})" + $rstr = '`$1' + } else { + $fstr = "${Char}+" + $rstr = '*' + } + + $Str -replace $fstr, $rstr } -# SIG # Begin signature block -# MIIFxwYJKoZIhvcNAQcCoIIFuDCCBbQCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB -# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR -# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUNYO6iFH1B+kW/b06vFyGuFhF -# TYSgggNSMIIDTjCCAjagAwIBAgIQdMnAQ4BDAo9Lgfn+QeDdhjANBgkqhkiG9w0B -# AQUFADAqMRMwEQYDVQQDDApOaWNrIENoYW5nMRMwEQYDVQQKDAplYXJpY2sub3Jn -# MB4XDTIxMTAzMTEwMDI1MVoXDTIyMTAzMTEwMjI1MVowMzEiMCAGCSqGSIb3DQEJ -# ARYTcGNuaWNrMTAwQGdtYWlsLmNvbTENMAsGA1UEAwwETmljazCCASIwDQYJKoZI -# hvcNAQEBBQADggEPADCCAQoCggEBAMEnEk3/5rkEMibDbbfOXQaerk5xXSJmY8gf -# FAVUbrGfjzYHcRsPRzdb/pstcZGS2XUCoX2a57lQhACStns9dXeYfWhzNeAiSEAy -# iaJzUj5ELcH5TzT+mjeJQX6upeHOexO1TmtuM6mugpl9SvNQFqbQXlPHHmoLE3OC -# UzzjEC0AkHkcSiLdqtmSbRmaomcDMbtJgZHUciWE/p6mmAbpv2R4rdKSYSiI8UsE -# UclzkeTNrYKmJNiM0R+X1LyZVY6HAHN8dR3tjBnEPYoPxRAz4d2FEajvumzosNUr -# ni9LROnRxQXa048ZcsNArNZDQXe+Rc+PWhzbqHhy8rBllgZ08XkCAwEAAaNnMGUw -# DgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMB8GA1UdIwQYMBaA -# FBXyUrhn78ppKe7GRmHS6vbsNae/MB0GA1UdDgQWBBRs5+Yfb/14jwpjUNpTUuR1 -# 759t9TANBgkqhkiG9w0BAQUFAAOCAQEACSL1BqUcrqh+bBqr5rQ5mArCVxsBW92r -# HenPY48dKdhGgMODtxuo7osZLk7Il+aXhAsvNTSfmc92H5eDXFqZ565jm8r6FF1C -# f1oKxznmtxd4oyXflCRqBz+OGuXLq8dG9gWT7OisKWe0hifSMGaZ9afpNeiFLuD1 -# GSGk5E0W+bUyezCmjOdNWYIW452brt8rJS21WWVVvrsGjgJoTdsoAkFek8OEm82+ -# 1UR7xZOHybLvi8N0gvD+UFlVvcv6pmgUqaz5DS7J2si75Xj9pThE6/bPu/fkpc53 -# gMbleXNaqXIKeJTbI5hi2crlKyXBe/GfuK0Tv+06S1sL32VAs1VwmjGCAd8wggHb -# AgEBMD4wKjETMBEGA1UEAwwKTmljayBDaGFuZzETMBEGA1UECgwKZWFyaWNrLm9y -# ZwIQdMnAQ4BDAo9Lgfn+QeDdhjAJBgUrDgMCGgUAoHgwGAYKKwYBBAGCNwIBDDEK -# MAigAoAAoQKAADAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3 -# AgELMQ4wDAYKKwYBBAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQUKm04xcPD1eiw5sak -# B7XvBOA0ywIwDQYJKoZIhvcNAQEBBQAEggEAMYVlNEthdr1G6iogbkFpgKpPV+Wh -# z6M5HObyzETBVKkq34Lue9RqAK01ON4wFyaGsVHnSvSRA+JmZmWBmVeEEKi0LL00 -# /jrm+3BExMrslnOJP6I7t/sG+jfONZ9QoM1ms/E3nlWrTrkrvQ0gLJXMwaF7msal -# PZ1gICVGg14SFtGslsy6b8YZ9a0VUnN9JBODbT/DTqpyBVm3552e9oJ2hu0kPz5A -# lbkvREPC0HRVxLXWpWfP8NaR1EClbZB6pjTmwiVtKOtb0QSfpK0bjzCqsR42qKDc -# 4FWVXf+Jl7eGQ7uKzfnlzRVzds5ymAgHGUMWon/naWMCKm6p/RTxFAVAYA== -# SIG # End signature block