From c40ffbc86a2c1929ec4529354bbf0fd4e50acb79 Mon Sep 17 00:00:00 2001 From: pcnick Date: Sun, 14 Nov 2021 13:47:51 +0800 Subject: [PATCH] Anime Link Libary: modify folder name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 修正資料夾結構命名問題 * 擷取路徑上年份,無則以當前年份 --- Animelibk.ps1 | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/Animelibk.ps1 b/Animelibk.ps1 index f03a25c..0bf3b32 100644 --- a/Animelibk.ps1 +++ b/Animelibk.ps1 @@ -6,7 +6,8 @@ $TargetName = "" #$DestinName = "真の仲間" #$Path = "" -#$Path = "H:\Data\Downloads\因為不是真正的夥伴而被逐出勇者隊伍\[Shin no Nakama][04][BIG5][1080P].mp4" +#$Path = "H:\Anime\201901 盾の勇者の成り上がり\[LKSUB][Tate no Yuusha no Nariagari][01-25][GB][720P][MP4]\[LKSUB][Tate no Yuusha no Nariagari][01][GB][720P].mp4" +#$Path = "H:\Data\Downloads\因為不是真正的夥伴而被逐出勇者隊伍\[Shin no Nakama][01][BIG5][1080P].mp4" $JsonPath = $("..\Anime\* $TargetName", $($Path -replace '(.*\\[^\[\\\]]*)\\\[.*', '$1') | ? {Test-Path $_}) $WorkData = $(if (Test-Path "$JsonPath\animelibk.json") { Get-Content "$JsonPath\animelibk.json" | ConvertFrom-Json @@ -22,7 +23,7 @@ if (-not($WorkData.TargetName)) { $WorkData.TargetName = $($JsonPath -replace '.*\\[0-9\s]*(.*)$', '$1'); } if (-not($WorkData.DestinName)) { - $WorkData.DestinName = Read-Host "請輸入目地的名稱:"; + $WorkData.DestinName = Read-Host "請輸入目的地名稱:"; } if (-not($WorkData.Season)) { [int] $WorkData.Season = Read-Host "請輸入季別:"; @@ -33,14 +34,18 @@ if (-not($WorkData.Episode)) { $WorkData $Seasons_TC = "", "第一季", "第二季", "第三季", "第四季", "第五季" -$Year = $(get-date -Format ‘yyyy’) +$Year = @($($JsonPath -replace '.*\\((?\d{4})?(?\d{2})?).*$', '${Y}'), $(get-date -Format 'yyyy')) | ? {-not([string]::IsNullOrEmpty($_))} | Select -First 1 + +#$($JsonPath -replace '.*\\((?\d{4})?(?\d{2})?).*$', '${Y}'); + # 取得目標資料夾是否存在,不存在建立資料夾,並取得資料夾物件 -#$DestDir = $(if ( -not(Test-Path -Path ".\$DestinName\$($Seasons_TC[$Season])*")) { -# mkdir -p ".\$DestinName\$($Seasons_TC[$Season]) ($Year)" -#} else { -# Get-Item -Path ".\$DestinName\$($Seasons_TC[$Season])*" -#}) +$LinkPath = ".\{0}\{1}" -f $WorkData.DestinName, $Seasons_TC[$WorkData.Season] +$LinkDir = $(if (-not(Test-Path -Path "$LinkPath*")) { + New-Item -Path "$LinkPath ($Year)" -ItemType Directory -Force +} else { + Get-Item -Path "$LinkPath*" +}) #$DestDir = $(New-Item -Path ".\$WorkData.DestinName\$($Seasons_TC[$WorkData.Season]) ($Year)" -ItemType Directory -Force) function Get-StandName { @@ -106,7 +111,8 @@ $NewNameObj = @{ } $StructPathObj = @{ label = "StructPath"; - Expression = {$(New-Item -Path $(".\{0}\{1} ({2})" -f $WorkData.DestinName, $Seasons_TC[$WorkData.Season], $Year) -ItemType Directory -Force).FullName}; + #Expression = {$(New-Item -Path $(".\{0}\{1} ({2})" -f $WorkData.DestinName, $Seasons_TC[$WorkData.Season], $Year) -ItemType Directory -Force).FullName}; + Expression = {$LinkDir}; } ### # Select Object Mode END ### @@ -141,8 +147,8 @@ exit 0; # SIG # Begin signature block # MIIFxwYJKoZIhvcNAQcCoIIFuDCCBbQCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR -# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUuwJuleFHAYU44/Bdnmy+R8Lg -# /zKgggNSMIIDTjCCAjagAwIBAgIQdMnAQ4BDAo9Lgfn+QeDdhjANBgkqhkiG9w0B +# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQU3YLRpMFGrmg+Su+5oeIKvraA +# BeGgggNSMIIDTjCCAjagAwIBAgIQdMnAQ4BDAo9Lgfn+QeDdhjANBgkqhkiG9w0B # AQUFADAqMRMwEQYDVQQDDApOaWNrIENoYW5nMRMwEQYDVQQKDAplYXJpY2sub3Jn # MB4XDTIxMTAzMTEwMDI1MVoXDTIyMTAzMTEwMjI1MVowMzEiMCAGCSqGSIb3DQEJ # ARYTcGNuaWNrMTAwQGdtYWlsLmNvbTENMAsGA1UEAwwETmljazCCASIwDQYJKoZI @@ -163,11 +169,11 @@ exit 0; # AgEBMD4wKjETMBEGA1UEAwwKTmljayBDaGFuZzETMBEGA1UECgwKZWFyaWNrLm9y # ZwIQdMnAQ4BDAo9Lgfn+QeDdhjAJBgUrDgMCGgUAoHgwGAYKKwYBBAGCNwIBDDEK # MAigAoAAoQKAADAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3 -# AgELMQ4wDAYKKwYBBAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQUKB0kQFrRK1Rl8rDZ -# lJnArnXkI8YwDQYJKoZIhvcNAQEBBQAEggEAmNgr9x6wFVh+uMHs/jvb8bIMbqtO -# 25NUc6PldBI6CJKmfAROUsUTpgKKq9mHjUlB3EfxnT1+VfMHJf48xwAMVipVW5yD -# N7l2apqfU4PPlAP0On4biq1WCpjGK6rES8mXwqr63Z8nKiXvfxGHLskhyVlPgfPL -# IM0AuvC1og/lpiGNDsMqH2qWD/HObXYMfpc5V8a02anHjilVmvXHFfzUZPSptvBT -# VmmDCscZY6UPU5eXIq8tWoAUbzrGPwAYYFJZkWembCI+FyJfV9BJzq4yFg/qgf4g -# hgqBiWBSbHgWkiKOwa6v3hdrEO9z+2strZn7OhNrnVCHq4A1mt96BzBo6A== +# AgELMQ4wDAYKKwYBBAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQUPWUkr6q/tU9vc3Rn +# dhflwSPVJSYwDQYJKoZIhvcNAQEBBQAEggEAAYB4cekLuPF7GZPAoWy2mthiUiLA +# Ddaov8mn/AQcSgYtXZtsG4rNqcRtHWMuDDxMzZWXASGqDbypwETjguFsDZIGv0Ms +# B7Sd+DSQF+pxJtD8cVWMQSmozlzDBBYDa9Ewtp8bw8LFcymZCpyD/seKwId7lzqT +# WeF5Ko8Ly3aEfHamhbkdwQeX7Q5b+QmnGOhbvlPslx3LTXmPTVvts8CFU8uDNe2G +# Z3zWsdD8rjOqFozO335H2MFCGMl76oi5TTyeGdX2sdEEMyCNnEvrefl5V7KGCQfT +# 82RApctXlL8jBfkqwte9cx3QebnIP97A6YmpS7ADIx1iqKOu0fC+RsIf4g== # SIG # End signature block