1017 lines
36 KiB
PowerShell
1017 lines
36 KiB
PowerShell
Import-Module PSWriteColor
|
|
|
|
#Define important variables and information
|
|
$Locations = @(
|
|
'F:\Library\Graphic Novels\Comic'
|
|
'F:\Library\Graphic Novels\Manga'
|
|
'F:\Library\Graphic Novels\WebToon'
|
|
'F:\Library\Graphic Novels\Comic\Block 109'
|
|
'F:\Library\Graphic Novels\Comic\Sabrina'
|
|
'F:\Library\Graphic Novels\Comic\Doggybags'
|
|
'F:\Library\Graphic Novels\Comic\Alien'
|
|
'F:\Library\Graphic Novels\Comic\Hawkman'
|
|
'F:\Library\Graphic Novels\Comic\Outer Darkness'
|
|
'F:\Library\Graphic Novels\Comic\Secret Wars'
|
|
'F:\Library\Graphic Novels\Comic\Teenage Mutant Ninja Turtles'
|
|
'F:\Library\Graphic Novels\Comic\Hulk'
|
|
'F:\Library\Graphic Novels\Comic\Wonder Woman'
|
|
"F:\Library\Graphic Novels\Comic\Conan The Barbarian"
|
|
"F:\Library\Graphic Novels\Comic\Avengers"
|
|
"F:\Library\Graphic Novels\Comic\Amory Wars"
|
|
"F:\Library\Graphic Novels\Comic\Batman"
|
|
"F:\Library\Graphic Novels\Comic\Borderlands"
|
|
"F:\Library\Graphic Novels\Comic\Brit"
|
|
"F:\Library\Graphic Novels\Comic\Clive Barker"
|
|
"F:\Library\Graphic Novels\Comic\Colder"
|
|
"F:\Library\Graphic Novels\Comic\Constantine"
|
|
"F:\Library\Graphic Novels\Comic\Critical Role"
|
|
"F:\Library\Graphic Novels\Comic\Dark Ark"
|
|
"F:\Library\Graphic Novels\Comic\Deadpool"
|
|
"F:\Library\Graphic Novels\Comic\Dicks"
|
|
"F:\Library\Graphic Novels\Comic\Ether"
|
|
"F:\Library\Graphic Novels\Comic\Fables"
|
|
"F:\Library\Graphic Novels\Comic\Grimm Fairy Tales"
|
|
"F:\Library\Graphic Novels\Comic\Guardians of the Galaxy"
|
|
"F:\Library\Graphic Novels\Comic\Gwenpool"
|
|
"F:\Library\Graphic Novels\Comic\Hack Slash"
|
|
"F:\Library\Graphic Novels\Comic\Harley Quinn"
|
|
"F:\Library\Graphic Novels\Comic\Hellboy"
|
|
"F:\Library\Graphic Novels\Comic\Hercules"
|
|
"F:\Library\Graphic Novels\Comic\Joker"
|
|
"F:\Library\Graphic Novels\Comic\Justice League"
|
|
"F:\Library\Graphic Novels\Comic\Kick-Ass"
|
|
"F:\Library\Graphic Novels\Comic\Lazarus"
|
|
"F:\Library\Graphic Novels\Comic\Lobo"
|
|
"F:\Library\Graphic Novels\Comic\Mad Max"
|
|
"F:\Library\Graphic Novels\Comic\Teen Titans"
|
|
"F:\Library\Graphic Novels\Comic\Midnighter"
|
|
"F:\Library\Graphic Novels\Comic\Nailbiter"
|
|
"F:\Library\Graphic Novels\Comic\Pilot Season"
|
|
"F:\Library\Graphic Novels\Comic\Punisher"
|
|
"F:\Library\Graphic Novels\Comic\Predator"
|
|
"F:\Library\Graphic Novels\Comic\Rumble"
|
|
"F:\Library\Graphic Novels\Comic\Sonic"
|
|
"F:\Library\Graphic Novels\Comic\Star Wars"
|
|
"F:\Library\Graphic Novels\Comic\Suicide Squad"
|
|
"F:\Library\Graphic Novels\Comic\Spider-Man"
|
|
"F:\Library\Graphic Novels\Comic\The Boys"
|
|
"F:\Library\Graphic Novels\Comic\The Last Zombie"
|
|
"F:\Library\Graphic Novels\Comic\The Realm"
|
|
"F:\Library\Graphic Novels\Comic\The Walking Dead"
|
|
"F:\Library\Graphic Novels\Comic\Thor"
|
|
"F:\Library\Graphic Novels\Comic\Transformers"
|
|
"F:\Library\Graphic Novels\Comic\Venom"
|
|
"F:\Library\Graphic Novels\Comic\Vikings"
|
|
"F:\Library\Graphic Novels\Comic\WWE"
|
|
"F:\Library\Graphic Novels\Comic\X-Men"
|
|
"F:\Library\Graphic Novels\Comic\X-Men\Wolverine"
|
|
"F:\Library\Graphic Novels\Comic\X-Men\X-Men"
|
|
"F:\Library\Graphic Novels\Manga\GUNNM"
|
|
"F:\Library\Graphic Novels\Manga\Battle Through The Heavens"
|
|
"F:\Library\Graphic Novels\Manga\Boku No Hero Academia"
|
|
"F:\Library\Graphic Novels\Manga\Dr. Stone"
|
|
"F:\Library\Graphic Novels\Manga\Franken Fran"
|
|
"F:\Library\Graphic Novels\Manga\Kakegurui"
|
|
"F:\Library\Graphic Novels\Manga\Kami-Sama No Iutoori"
|
|
"F:\Library\Graphic Novels\Manga\Shaman King"
|
|
"F:\Library\Graphic Novels\Manga\Tensei Shitara Slime Datta Ken"
|
|
"F:\Library\Graphic Novels\Manga\Touhou"
|
|
"F:\Library\Graphic Novels\Manga\Touhou\Official"
|
|
"F:\Library\Graphic Novels\Manga\Touhou\Doujinshi"
|
|
)
|
|
$rootDirectory = 'F:\Library\Graphic Novels'
|
|
[string[]]$blackList = @("*Director's cut*",'*16777215*', '*Occult Edition*', '*Preview*', '*All Out War Artist Proof Edition*','*Script*','*I Hate It Here*','*Filth of the City*', 'folder*', '*TPB*', '*annual*', '*special*', '*full*', '*primer*', '*Colección*', '*book*', '*1000000*', '*extra*')
|
|
[string[]]$whiteList = @('Wolverine (2003)','Borderlands ~ Tannis & the Vault', 'Star Wars ~ Republic','Star Wars ~ Rebels Magazine','*Akira*','Gyo','Uncanny X-Men (2013)','Franken Fran', 'GUNNM', 'The Transformers (2014)', 'The Transformers ~ Regeneration One', 'Transformers ~ Energon', 'Dark Wolverine', 'Wolverine (2010)', 'All-New Guardians of the Galaxy', 'Incredible Hercules', 'Mighty Thor (2016)', 'Venom (2016)', 'Dorohedoro', 'Montage (WATANABE Jun)')
|
|
$pattern = '((\d+)(\.\d)?)((?=\.cbz)|(?=\.zip))' #Pattern of the numbers
|
|
[regex]$rx = $pattern
|
|
|
|
#Functions downloaded from the internet
|
|
function SortNaturally{
|
|
PARAM(
|
|
[string[]]$strArray
|
|
)
|
|
|
|
Add-Type -TypeDefinition @'
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace NaturalSort {
|
|
public static class NaturalSort
|
|
{
|
|
[DllImport("shlwapi.dll", CharSet = CharSet.Unicode)]
|
|
public static extern int StrCmpLogicalW(string psz1, string psz2);
|
|
|
|
public static System.Collections.ArrayList Sort(System.Collections.ArrayList foo)
|
|
{
|
|
foo.Sort(new NaturalStringComparer());
|
|
return foo;
|
|
}
|
|
}
|
|
|
|
public class NaturalStringComparer : IComparer
|
|
{
|
|
public int Compare(object x, object y)
|
|
{
|
|
return NaturalSort.StrCmpLogicalW(x.ToString(), y.ToString());
|
|
}
|
|
}
|
|
}
|
|
'@
|
|
|
|
return [NaturalSort.NaturalSort]::Sort($strArray)
|
|
}
|
|
|
|
function deleteDuplicates {
|
|
param(
|
|
[Parameter(
|
|
Mandatory=$True,
|
|
ValueFromPipeline=$True,
|
|
ValueFromPipelineByPropertyName=$True
|
|
)]
|
|
[string[]]$PathDuplicates)
|
|
|
|
$DuplicatePaths =
|
|
Get-ChildItem $PathDuplicates -Recurse|
|
|
Get-FileHash |
|
|
Group-Object -Property Hash |
|
|
Where-Object -Property Count -gt 1 |
|
|
ForEach-Object {
|
|
$_.Group.Path |
|
|
Select-Object -First ($_.Count -1)}
|
|
$TotalCount = (Get-ChildItem $PathDuplicates).Count
|
|
Write-Warning ("You are going to delete {0} files out of {1} total. Please confirm the prompt" -f $DuplicatePaths.Count, $TotalCount)
|
|
Invoke-Item $DuplicatePaths
|
|
$DuplicatePaths | Remove-Item -Confirm
|
|
}
|
|
|
|
#My own functions
|
|
|
|
function Write-Separator{Write-Color '---' -Color DarkGray}
|
|
function checkDecimals($name, $indexNumber, $testFile){
|
|
$testFileDecimal = @(
|
|
$name + ' - ' + $indexNumber + '.' + 0 + '.cbz'
|
|
$name + ' - ' + $indexNumber + '.' + 1 + '.cbz'
|
|
$name + ' - ' + $indexNumber + '.' + 2 + '.cbz'
|
|
$name + ' - ' + $indexNumber + '.' + 3 + '.cbz'
|
|
$name + ' - ' + $indexNumber + '.' + 4 + '.cbz'
|
|
$name + ' - ' + $indexNumber + '.' + 5 + '.cbz'
|
|
$name + ' - ' + $indexNumber + '.' + 6 + '.cbz'
|
|
$name + ' - ' + $indexNumber + '.' + 7 + '.cbz'
|
|
$name + ' - ' + $indexNumber + '.' + 8 + '.cbz'
|
|
$name + ' - ' + $indexNumber + '.' + 9 + '.cbz'
|
|
)
|
|
$openDir = $true
|
|
for ($i = 0; $i -lt $testFileDecimal.Count; $i++)
|
|
{
|
|
if (Test-Path($testFileDecimal[$i])){
|
|
$openDir = $false
|
|
}
|
|
}
|
|
if ($openDir -eq $true){
|
|
$dir = Get-Location
|
|
Write-Color 'The issue ', $testFile, ' is missing from the directory ', $dir -Color White, DarkRed, White, Red
|
|
}
|
|
}
|
|
function removeEmptyDirectory{
|
|
remove-emtpy.ps1 -Path .\ -Remove -VerifyNoEmpty
|
|
}
|
|
|
|
function decompress{
|
|
foreach ($file in Get-ChildItem *.cbz -Recurse) { #Creates a list of CBZ files on all the subdirectories and runs for each one
|
|
Clear-Host #This will make the screen flash so it becomes somewhat readable.
|
|
Set-Location $file.DirectoryName #Changes location to a children directory to avoid uncompressing into the wrong folders
|
|
7z x $file -o*
|
|
Remove-Item $file.FullName #Removes the CBZ file after extracted
|
|
}
|
|
}
|
|
|
|
function fixZip{
|
|
foreach ($file in Get-ChildItem *.cbz -Recurse) { #Creates a list of CBZ files on all the subdirectories and runs for each one
|
|
Clear-Host #This will make the screen flash so it becomes somewhat readable.
|
|
Set-Location $file.DirectoryName #Changes location to a children directory to avoid uncompressing into the wrong folders
|
|
7z x $file -o*
|
|
$dirCreated = [io.path]::GetFileNameWithoutExtension($file)
|
|
if (Test-Path -Path $dirCreated){
|
|
#Get-ChildItem -Recurse ComicInfo.xml | Remove-Item
|
|
Remove-Item $file.FullName #Removes the CBZ file after extracted
|
|
7z a "$dirCreated.zip" .\$dirCreated\*
|
|
Remove-Item $dirCreated -Force -Recurse
|
|
}
|
|
}
|
|
}
|
|
|
|
function compress{ #Compress every comic folder that contains valid filetypes
|
|
Set-Location $rootDirectory #Goes to the root in case anything changed
|
|
foreach ($directory in Get-ChildItem -recurse -Directory){
|
|
Set-Location $directory.FullName
|
|
if ((Test-Path .\*.jpg -Exclude 'folder.jpg') -or (Test-Path .\*.png -Exclude 'folder.png') -or (Test-Path .\*.jpeg -Exclude 'folder.jpeg')){ #checks if the file contains valid images otherwise skips
|
|
Set-Location $directory.Parent.FullName
|
|
$fileArray = Get-ChildItem $directory.FullName
|
|
#foreach ($file in Get-ChildItem $directory.FullName){#Compress the folder with all the files found inside
|
|
$chunkSize = 100
|
|
$outFileArray = @()
|
|
$parts =[math]::Ceiling($fileArray.Count / $chunkSize)
|
|
if($fileArray.Count -eq 1){
|
|
#$fileArray.FullName
|
|
#$directory
|
|
7z a "$directory.zip" $fileArray.FullName
|
|
Remove-Item $fileArray.FullName -Force
|
|
if ((Get-ChildItem $directory).Count -eq 0){
|
|
Remove-Item $directory
|
|
}
|
|
}
|
|
elseif($fileArray.Count -gt 1){
|
|
for($i=0; $i -lt $parts; $i++){
|
|
$start = $i*$chunkSize
|
|
$end = (($i+1)*$chunkSize)-1
|
|
$outFileArray += ,@($fileArray[$start..$end])
|
|
#Clear-Host #FLashes the screen so its possible to read
|
|
#7z a "$directory.zip" $file.FullName
|
|
#Remove-Item $file.FullName -Force
|
|
}
|
|
for ($i=0; $i -lt $outFileArray.Count; $i++){
|
|
#$outFileArray[$i]
|
|
7z a "$directory.zip" $outFileArray[$i].FullName
|
|
Remove-Item $outFileArray[$i].FullName -Force
|
|
}
|
|
if ((Get-ChildItem $directory).Count -eq 0){
|
|
Remove-Item $directory
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Set-Location $rootDirectory #As the progam exits the loop go back to the root directory
|
|
}
|
|
|
|
function cleanNames{
|
|
$allDirs = Get-ChildItem -Directory
|
|
$allFiles = Get-ChildItem -Recurse -File -Depth 1
|
|
|
|
#Rename files with year on the name so the scrapper can identify them better
|
|
$patternConflict = @(
|
|
'\((\d{4})\) '
|
|
'(?<!\()((\d{4} )(?!\))(?!\.\d)(?!.zip))'
|
|
)
|
|
$list = Get-ChildItem -Recurse -File -Exclude $blackList
|
|
foreach ($patternMatch in $patternConflict){
|
|
$newList = $list | Where-Object {$_.Name -match $patternMatch} #Creates a list of all the matching conflicting names
|
|
foreach ($file in $newList){
|
|
Set-Location $file.DirectoryName
|
|
$newName = $file.Name -replace ($patternMatch,'')
|
|
Write-Separator
|
|
Write-Color 'File directory: ', $file.DirectoryName -Color White, Green
|
|
Write-Color $file.Name, ' will be renamed into ', $newName -Color Red, White, Green
|
|
Rename-Item -Path $file -NewName .\$newName
|
|
}
|
|
$newList = @() #Clean the previous list to avoid problems
|
|
}
|
|
|
|
$nameConflict = @(
|
|
'_ '
|
|
' _'
|
|
' '
|
|
" 's"
|
|
'Konjiki No Moji Tsukai - Yuusha Yonin Ni Makikomareta Unique Cheat'
|
|
'Onepunch Man'
|
|
'Justice League Dark'
|
|
'Tensei Shitara Slime Datta Ken ~ Mabutsu No Kuni No Arukikata'
|
|
'Scoob-And-Shag'
|
|
'Tower-Of-God'
|
|
'The-God-Of-High-School'
|
|
'Pixie-And-Brutus'
|
|
'Stick-N-Poke'
|
|
'Shaman King 0'
|
|
'Shaman King Flowers'
|
|
'Shaman King Man Ji En'
|
|
'Shaman King Remix Track'
|
|
'Shaman King The Super Star'
|
|
'Kakegurui Midari'
|
|
'Dragon Ball Chou'
|
|
'Boruto Naruto Next Generations'
|
|
'Vigilante Boku No Hero Academia Illegals'
|
|
'Justice League Dark'
|
|
'Outer Darkness_Chew'
|
|
'Chi No Wadachi'
|
|
'Tensei Shitara Slime Datta Ken ~ Mabutsu No Kuni No Arukikata'
|
|
'X Men'
|
|
'Gunnm Mars Chronicle'
|
|
'Tensura Nikki Tensei Shitara Slime Datta Ken'
|
|
"The Shinigami's Rowing Her Boat As Usual ~ Touhou"
|
|
'Wonder Woman Dead Earth'
|
|
'The Transformers Classics UK'
|
|
'Harley Quinn Black + White + Red'
|
|
'Yakusoku No Neverland'
|
|
'Oyaji Ga Bishoujo Ni Natteta Hanashi'
|
|
'Tensei Shitara Slime Datta Ken ~ Ibun Makuni Kurashi No Trinity'
|
|
)
|
|
$nameFix = @(
|
|
' ~ '
|
|
' '
|
|
' '
|
|
"'s"
|
|
'Konjiki No Moji Tsukai ~ Yuusha Yonin Ni Makikomareta Unique Cheat'
|
|
'Onepunch-Man'
|
|
'Justice League ~ Dark'
|
|
'Tensei Shitara Slime Datta Ken ~ The Ways Of Strolling In The Demon Country'
|
|
'Scoob And Shag'
|
|
'Tower Of God'
|
|
'The God Of High School'
|
|
'Pixie And Brutus'
|
|
'Stick N Poke'
|
|
'Shaman King ~ 0'
|
|
'Shaman King ~ Flowers'
|
|
'Shaman King ~ Man Ji En'
|
|
'Shaman King ~ Remix Track'
|
|
'Shaman King ~ The Super Star'
|
|
'Kakegurui ~ Midari'
|
|
'Dragon Ball Super'
|
|
'Boruto ~ Naruto Next Generations'
|
|
'Vigilante ~ Boku No Hero Academia Illegals'
|
|
'Justice League ~ Dark'
|
|
'Outer Darkness ~ Chew'
|
|
'A Trail Of Blood'
|
|
'Tensei Shitara Slime Datta Ken ~ The Ways Of Strolling In The Demon Country'
|
|
'X-Men'
|
|
'GUNNM ~ Mars Chronicle'
|
|
'Tensura Nikki ~ Tensei Shitara Slime Datta Ken'
|
|
"Touhou ~ The Shinigami's Rowing Her Boat As Usual"
|
|
'Wonder Woman ~ Dead Earth'
|
|
'The Transformers ~ Classics UK'
|
|
'Harley Quinn ~ Black + White + Red'
|
|
'The Promised Neverland'
|
|
'My Father Became A Cute Vtuber Girl!'
|
|
'Tensei Shitara Slime Datta Ken Ibun ~ Makuni Kurashi No Trinity'
|
|
)
|
|
|
|
#Fix filename number mismatch from different sources
|
|
$theGreatRulerFiles = $allFiles | Where-Object {$_.Name -match 'The Great Ruler'} | Where-Object {$_.Name -match 'zip'}
|
|
foreach ($file in $theGreatRulerFiles){
|
|
[int]$TGRnumber = $rx.match($file).value
|
|
if($TGRnumber -gt 340){
|
|
$TGRNewNumber = $TGRnumber - 204
|
|
$newName = $file.Name -replace ($TGRnumber, $TGRNewNumber)
|
|
Write-Color $file.Name, ' will be renamed into ', $newName -Color Red, White, Green
|
|
Rename-Item $file -NewName $newName {[System.IO.Path]::ChangeExtension($_.Name, "cbz")}
|
|
}
|
|
}
|
|
$HarleyQuinRedBlackWhite = $allFiles | Where-Object {$_.Name -match "Harley Quinn Black \+ White \+ Red"}
|
|
foreach ($file in $HarleyQuinRedBlackWhite){
|
|
Write-Color $file.Name, ' will be renamed into ', $file.Name.Replace("Harley Quinn Black + White + Red", "Harley Quinn ~ Black + White + Red") -Color Red, White, Green
|
|
Rename-Item $file -NewName $file.Name.Replace("Harley Quinn Black + White + Red", "Harley Quinn ~ Black + White + Red")
|
|
}
|
|
|
|
<#$apotheosisFiles = $allFiles | Where-Object {$_.Name -match 'Apotheosis'} | Where-Object {$_.Name -match 'zip'}
|
|
foreach ($file in $apotheosisFiles){
|
|
[int]$TGRnumber = $rx.match($file).value
|
|
if($TGRnumber -gt 578){
|
|
$TGRNewNumber = $TGRnumber + 3
|
|
$newName = $file.Name -replace ($TGRnumber, $TGRNewNumber)
|
|
Write-Color $file.Name, ' will be renamed into ', $newName -Color Red, White, Green
|
|
Rename-Item $file -NewName $newName
|
|
}
|
|
}#>
|
|
|
|
#Rename directories
|
|
for ($i = 0; $i -lt $nameConflict.Count; $i++){
|
|
#$nameFilter = '*' + $nameConflict[$i] + '*'
|
|
$filteredDirs = $allDirs | Where-Object {$_.Name -imatch $nameConflict[$i]}
|
|
$filteredFiles = $allFiles | Where-Object {$_.Name -imatch $nameConflict[$i]}
|
|
foreach ($conflictName in $filteredFiles){
|
|
if ($conflictName.Name.ToLower() -eq $conflictName.Name.Replace($nameConflict[$i], $nameFix[$i]).ToLower()){}
|
|
else{
|
|
Write-Color $conflictName.Name, " will be renamed into ", $conflictName.Name.Replace($nameConflict[$i], $nameFix[$i]) -Color Red, White, Green
|
|
Rename-Item $conflictName.FullName -NewName $conflictName.Name.Replace($nameConflict[$i], $nameFix[$i])
|
|
}
|
|
}
|
|
foreach ($conflictName in $filteredDirs){
|
|
$newDir = $conflictName.Name.Replace($nameConflict[$i], $nameFix[$i])
|
|
if(Test-Path ($newDir)){
|
|
foreach ($file in Get-ChildItem -Path $conflictName){Move-Item $file -Destination $newDir}
|
|
}
|
|
elseif(!(Test-Path ($newDir))){
|
|
Write-Separator
|
|
Write-Color 'Will rename the directory ', $conflictName.Name, ' into ', $newDir -Color White, Red, White, Green
|
|
Rename-Item $conflictName -NewName $newDir
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function folderCover{
|
|
Set-Location $rootDirectory
|
|
$folderCoverArray = Get-ChildItem -Recurse -File 'folder*'
|
|
<#foreach ($folderCover in $folderCoverArray){
|
|
Set-Location $folderCover.Directory
|
|
$directoryFiles = Get-ChildItem -Exclude $blackList
|
|
$firstFile = SortNaturally -strArray $directoryFiles | Select-Object -First 1
|
|
$firstFileDirectory = $firstFile.Split('.')
|
|
7z x $firstFile -o*
|
|
Remove-Item $firstFile
|
|
Move-Item $folderCover -Destination $firstFileDirectory[0]
|
|
}#>
|
|
$folderCoverArray
|
|
Set-Location $rootDirectory
|
|
<#$folderCoverArray = Get-ChildItem -Recurse -File '0'
|
|
$folderCoverArray
|
|
foreach ($file in $folderCoverArray){Rename-Item $file -NewName '0.jpg'}
|
|
$folderCoverArray = Get-ChildItem -Recurse -File '0.jpg'
|
|
foreach ($file in $folderCoverArray){
|
|
#magick mogrify -format png $file
|
|
Remove-Item $file
|
|
}#>
|
|
}
|
|
|
|
|
|
function pad{ #Pad filenames based on the newest number
|
|
foreach ($directory in Get-ChildItem -recurse -Directory){ #Get directories
|
|
Set-Location $directory #Changes to each child directory
|
|
if ((Get-ChildItem | Measure-Object).Count -gt 0){ #If there are more than one files
|
|
$directoryFiles = Get-ChildItem -Exclude $blackList
|
|
if ($directoryFiles.Name -match $pattern){ #Loops trough all the files that contain a matching name
|
|
#$lastFile = SortNaturally -strArray $directoryFiles | Select-Object -last 1 #Get the last file
|
|
#Extract the number part of the name
|
|
#[int]$number = $rx.match($lastFile).value
|
|
foreach ($file in $directoryFiles){
|
|
$paddedDigits = "{0:D4}" -f [int]($file.Name | Select-String -Pattern $pattern).matches.Groups[2].Value #calculate new name
|
|
$newName = $file.Name -replace ($pattern, $($paddedDigits+'$3')) #replace new name
|
|
if ($newName -ne $file.Name){
|
|
Write-Color $file.Name, ' will be renamed into ', $newName -Color Red, White, Green
|
|
Rename-Item $file -NewName $newName #rename file
|
|
}
|
|
}
|
|
<#if (($number -le 9999) -and ($number -ge 900)){#If file is part of a long series
|
|
foreach ($file in $directoryFiles)
|
|
{
|
|
$paddedDigits = "{0:D4}" -f [int]($file.Name | Select-String -Pattern $pattern).matches.Groups[2].Value #calculate new name
|
|
$newName = $file.Name -replace ($pattern, $($paddedDigits+'$3')) #replace new name
|
|
if ($newName -ne $file.Name){
|
|
Write-Color $file.Name, ' will be renamed into ', $newName -Color Red, White, Green
|
|
Rename-Item $file -NewName $newName #rename file
|
|
}
|
|
}
|
|
}
|
|
if (($number -le 899) -and ($number -ge 70)){#If file is part of a long series
|
|
foreach ($file in $directoryFiles)
|
|
{
|
|
$paddedDigits = "{0:D3}" -f [int]($file.Name | Select-String -Pattern $pattern).matches.Groups[2].Value #calculate new name
|
|
$newName = $file.Name -replace ($pattern, $($paddedDigits+'$3')) #replace new name
|
|
if ($newName -ne $file.Name){
|
|
Write-Color $file.Name, ' will be renamed into ', $newName -Color Red, White, Green
|
|
Rename-Item $file -NewName $newName #rename file
|
|
}
|
|
}
|
|
}
|
|
elseif (($number -le 99) -and ($number -ge 10)){#If file is part of a short series
|
|
foreach ($file in $directoryFiles)
|
|
{
|
|
$paddedDigits = "{0:D2}" -f [int]($file.Name | Select-String -Pattern $pattern).matches.Groups[2].Value #calculate new name
|
|
$newName = $file.Name -replace ($pattern, $($paddedDigits+'$3')) #replace new name
|
|
if ($newName -ne $file.Name){
|
|
Write-Color $file.Name, ' will be renamed into ', $newName -Color Red, White, Green
|
|
Rename-Item $file -NewName $newName #rename file
|
|
}
|
|
}
|
|
}
|
|
elseif (($number -le 9)){#If file is part of a short series
|
|
foreach ($file in $directoryFiles)
|
|
{
|
|
$paddedDigits = "{0:D1}" -f [int]($file.Name | Select-String -Pattern $pattern).matches.Groups[2].Value #calculate new name
|
|
$newName = $file.Name -replace ($pattern, $($paddedDigits+'$3')) #replace new name
|
|
if ($newName -ne $file.Name){
|
|
Write-Color $file.Name, ' will be renamed into ', $newName -Color Red, White, Green
|
|
Rename-Item $file -NewName $newName #rename file
|
|
}
|
|
}
|
|
}#>
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function decimals{
|
|
foreach ($directory in Get-ChildItem -Recurse -Directory -Exclude 'Akira'){
|
|
Set-Location $directory
|
|
$files = Get-ChildItem -File -Recurse -Exclude $blackList
|
|
if ($files.Name -match '(\.\d)(?=\.cbz)'){
|
|
foreach ($file in $files -match '(\.\d)(?=\.cbz)'){
|
|
#$file.FullName
|
|
$splitName = $file.Name.Split('.')
|
|
$origName = $splitName[0] + '.cbz'
|
|
if(Test-Path $origName){
|
|
$newName = $splitName[0] + '.0.cbz'
|
|
Write-Color $origName, ' will be renamed into ', $newName -Color Red, White, Green
|
|
Rename-Item $origName -NewName $newName
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function missingFiles{
|
|
foreach ($directory in Get-ChildItem -Directory -Exclude $whiteList){
|
|
Set-Location $directory
|
|
$directoryFiles = Get-ChildItem -Exclude $blackList
|
|
if ($directoryFiles.Name -match $pattern){
|
|
[string]$lastFile = SortNaturally -strArray $directoryFiles.Name | Select-Object -last 1
|
|
$number = $rx.match($lastFile).value
|
|
$number = $number - 1
|
|
#'((\d+)(\.\d)?)((?=\.cbz)|(?=\.zip))'
|
|
#$name = $lastFile.Split(' - ') #Split the name of the file structure
|
|
$name = [regex]::Split($lastFile, ' - \d+') #Split the name of the file structure
|
|
[int]$number = $number
|
|
for ($i=1; $i -le $number; $i++){
|
|
$indexNumber = "{0:0000}" -f $i
|
|
$testFile = $name[0] + ' - ' + $indexNumber + '.cbz'
|
|
if(!(Test-Path ($testFile))){
|
|
checkDecimals $name[0] $indexNumber $testFile
|
|
}
|
|
}
|
|
|
|
<#for ($i=1; $i -le $number; $i++){
|
|
if (($number -le 9999) -and ($number -ge 900)){
|
|
$indexNumber = "{0:0000}" -f $i
|
|
$testFile = $name[0] + ' - ' + $indexNumber + '.cbz'
|
|
if(!(Test-Path ($testFile))){
|
|
checkDecimals $name[0] $indexNumber $testFile
|
|
}
|
|
}
|
|
if (($number -le 899) -and ($number -ge 70)){
|
|
$indexNumber = "{0:000}" -f $i
|
|
$testFile = $name[0] + ' - ' + $indexNumber + '.cbz'
|
|
if(!(Test-Path ($testFile))){
|
|
checkDecimals $name[0] $indexNumber $testFile
|
|
}
|
|
}
|
|
elseif (($number -le 99) -and ($number -ge 10)){
|
|
$indexNumber = "{0:00}" -f $i
|
|
$testFile = $name[0] + ' - ' + $indexNumber + '.cbz'
|
|
if(!(Test-Path ($testFile))){
|
|
checkDecimals $name[0] $indexNumber $testFile
|
|
}
|
|
}
|
|
elseif (($number -le 9)){
|
|
$indexNumber = "{0:0}" -f $i
|
|
$testFile = $name[0] + ' - ' + $indexNumber + '.cbz'
|
|
if(!(Test-Path ($testFile))){
|
|
checkDecimals $name[0] $indexNumber $testFile
|
|
}
|
|
}
|
|
elseif ($number -eq 100){
|
|
$testFile = $name[0] + ' - ' + 100 + '.cbz'
|
|
if(!(Test-Path ($testFile))){
|
|
$testFile
|
|
$openDir = $true
|
|
}
|
|
}
|
|
}#>
|
|
if($openDir)
|
|
{
|
|
Invoke-Item .
|
|
Read-Host -Prompt "Continue"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function partZip {
|
|
|
|
$partListDirectory = Get-ChildItem -Recurse -File *part*
|
|
$partListDirectory = $partListDirectory.Directory | Sort-Object | Select-Object -Unique
|
|
foreach ($partDirectory in $partListDirectory){
|
|
$partListFile = @()
|
|
Set-Location $partDirectory
|
|
foreach ($partFile in Get-ChildItem -File *part*){
|
|
$partListFileTemp = $partFile.Name.Split(" (Part")
|
|
$partListFile += $partListFileTemp[0]
|
|
}
|
|
$partListFile = $partListFile | Sort-Object | Select-Object -Unique
|
|
mkdir $partListFile
|
|
<#foreach ($partListFileFile in $partListFile){
|
|
foreach ($file in Get-ChildItem){
|
|
$partListFileFile
|
|
$file.NameString
|
|
$file.NameString.Contains("$partListFile")
|
|
}
|
|
}#>
|
|
}
|
|
}
|
|
|
|
function Move-Directories{
|
|
$moveLocations =@(
|
|
"F:\Library\Graphic Novels\Comic\"
|
|
"F:\Library\Graphic Novels\Manga\"
|
|
)
|
|
foreach ($moveLocation in $moveLocations) {
|
|
Set-Location $moveLocation
|
|
$dirCollection = @(
|
|
'WWE'
|
|
'Venom'
|
|
'Transformers'
|
|
'The Last Zombie'
|
|
'The Boys'
|
|
'Star Wars'
|
|
'Pilot Season'
|
|
'Midnighter'
|
|
'Lobo'
|
|
'Hellboy'
|
|
'Fables'
|
|
'Colder'
|
|
'Clive Barker'
|
|
'Brit'
|
|
'Amory Wars'
|
|
'Guardians of the Galaxy'
|
|
'Klaus'
|
|
'Batman'
|
|
'Critical Role'
|
|
'Hack Slash'
|
|
'Justice League'
|
|
'Nailbiter'
|
|
'Lazarus'
|
|
'Dark Ark'
|
|
'Dicks'
|
|
'Ether'
|
|
'Grimm Fairy Tales'
|
|
'Hercules'
|
|
'Thor'
|
|
'Punisher'
|
|
'Rumble'
|
|
'Sonic'
|
|
'The Realm'
|
|
'Vikings'
|
|
'Mad Max'
|
|
'Harley Quinn'
|
|
'Joker'
|
|
'Suicide Squad'
|
|
'Deadpool'
|
|
'Gwenpool'
|
|
'Borderlands'
|
|
'Battle Through The Heavens'
|
|
'Boku No Hero Academia'
|
|
'Franken Fran'
|
|
'Kakegurui'
|
|
'Shaman King'
|
|
'GUNNM'
|
|
'Touhou'
|
|
"Teen Titans"
|
|
'Avengers'
|
|
'Block 109'
|
|
'Sabrina'
|
|
'Doggybags'
|
|
'Hawkman'
|
|
'Outer Darkness'
|
|
'Secret Wars'
|
|
'Teenage Mutant Ninja Turtles'
|
|
'Hulk'
|
|
'Wonder Woman'
|
|
'Predator'
|
|
)
|
|
$dirCollectionBlacklist = @(
|
|
'Kid Lobotomy'
|
|
'War Of The Realms ~ Omega'
|
|
'Teether'
|
|
'Detective Conan'
|
|
)
|
|
$xmenCollection = @(
|
|
'Wolverine'
|
|
'Logan'
|
|
'Sabretooth'
|
|
'X-Men'
|
|
'X-Force'
|
|
)
|
|
$kickassCollection = @(
|
|
'Hit-Girl'
|
|
'Kick-Ass'
|
|
)
|
|
$constantineCollection = @(
|
|
'Constantine'
|
|
'Hellblazer'
|
|
)
|
|
$spiderCollection = @(
|
|
'Spider'
|
|
)
|
|
$slimeCollection = @(
|
|
'Shitara Slime Datta Ken'
|
|
'Tenchura! Tensei Shitara Slime Datta Ken'
|
|
)
|
|
$conanCollection = @(
|
|
'Conan'
|
|
'Cimmerian'
|
|
)
|
|
$alienCollection =@(
|
|
'Alien'
|
|
'Prometheus'
|
|
)
|
|
|
|
$collections = $conanCollection, $xmenCollection, $kickassCollection, $constantineCollection, $spiderCollection, $slimeCollection, $alienCollection
|
|
$collectionsDirs = @(
|
|
'Conan The Barbarian'
|
|
'X-Men'
|
|
'Kick-Ass'
|
|
'Constantine'
|
|
'Spider-Man'
|
|
'Tensei Shitara Slime Datta Ken'
|
|
'Alien'
|
|
)
|
|
#Collections
|
|
$Directories = Get-ChildItem -Directory -Exclude $dirCollectionBlacklist
|
|
for ($i = 0; $i -lt $dirCollection.Count; $i++){
|
|
$matchingDirectories = $Directories | Where-Object {$_.Name -match $dirCollection[$i]}
|
|
ForEach ($missplacedDirectory in $matchingDirectories){
|
|
if ($missplacedDirectory.Name -ne $dirCollection[$i]){
|
|
$destinationDir = $dirCollection[$i] + '\' + $missplacedDirectory.Name
|
|
if(Test-Path $destinationDir){
|
|
$dir2move = Get-ChildItem -Path $missplacedDirectory
|
|
Write-Color 'Will move ', $dir2move, ' into ', $destinationDir -Color White, yellow, White, Green
|
|
Move-Item $dir2move -Destination $destinationDir
|
|
}
|
|
else{
|
|
Write-Color 'Will move ', $missplacedDirectory.Name, ' into ', $dirCollection[$i] -Color White, yellow, White, Green
|
|
if(!(Test-Path $dirCollection[$i])){mkdir $dirCollection[$i]}
|
|
Move-Item $missplacedDirectory -Destination $dirCollection[$i]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Special collections
|
|
for ($i = 0; $i -lt $collections.Count; $i++){
|
|
for ($ii = 0; $ii -lt $collections[$i].Count; $ii++){
|
|
$currentCollection = $collections[$i][$ii]
|
|
$matchingDirectories = $Directories | Where-Object {$_.Name -match $currentCollection}
|
|
ForEach ($missplacedDirectory in $matchingDirectories){
|
|
if ($missplacedDirectory.Name -ne $collectionsDirs[$i]){
|
|
if(!(Test-Path $collectionsDirs[$i])){mkdir $collectionsDirs[$i]}
|
|
Write-Color 'Will move ', $missplacedDirectory.Name, ' into ', $collectionsDirs[$i] -Color White, yellow, White, Green
|
|
Move-Item $missplacedDirectory -Destination $collectionsDirs[$i]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#X-men folder
|
|
Set-Location 'F:\Library\Graphic Novels\Comic\X-men'
|
|
$Dirs = Get-ChildItem -Directory
|
|
$wolvDirs = $Dirs | Where-Object {($_.Name -Match 'Wolverine' -or $_.Name -Match 'Sabretooth' -or $_.Name -Match 'Logan')}
|
|
$xmenDirs = $Dirs | Where-Object {($_.Name -Match 'X-Men' -or $_.Name -Match 'X-Force')}
|
|
$xCollections = $wolvDirs, $xmenDirs
|
|
$xDirs = @(
|
|
'Wolverine'
|
|
'X-Men'
|
|
)
|
|
For ($i = 0; $i -lt $xCollections.Count; $i++){
|
|
|
|
ForEach ($dir in $xCollections[$i]){
|
|
if ($dir.Name -ne $xDirs[$i]){
|
|
if (!(Test-Path $xDirs[$i])){mkdir $xDirs[$i]}
|
|
$destinationDir = $xDirs[$i] + '\' + $dir.Name
|
|
if(Test-Path $destinationDir){
|
|
$dir2move = Get-ChildItem -Path $dir
|
|
Write-Color 'Will move ', $dir2move, ' into ', $destinationDir -Color White, yellow, White, Green
|
|
Move-Item $dir2move -Destination $destinationDir
|
|
}
|
|
else{
|
|
Write-Color 'Will move ', $dir.Name, ' into ', $xDirs[$i] -Color White, yellow, White, Green
|
|
if(!(Test-Path $xDirs[$i])){mkdir $xDirs[$i]}
|
|
Move-Item $dir -Destination $xDirs[$i]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function DirectoryTree{
|
|
$parentDirectories = @()
|
|
foreach ($directory in Get-ChildItem -Recurse -Directory){
|
|
Set-Location $directory
|
|
$filesinside = Get-ChildItem
|
|
if(($filesinside.Name -match 'pdf') -or ($filesinside.Name -match 'cbz') -or ($filesinside.Name -match 'jpg') -or ($filesinside.Name -match 'png'))
|
|
{}
|
|
else{
|
|
$locationString = Get-Location
|
|
$parentDirectories += '"' + $locationString + '"'
|
|
}
|
|
}
|
|
$parentDirectories > 'F:\Library\Tree.txt'
|
|
|
|
}
|
|
function Capitalize{
|
|
Set-Location 'F:\Library\Comic'
|
|
foreach ($directory in Get-ChildItem -Recurse -Directory){
|
|
Set-Location $directory
|
|
[string[]]$renamerBL = @("*.xml","*.pdf","*.cbz","Folder.jpg","Folder.png", "folder.jpg", "folder.png")
|
|
$capitalizeFiles = Get-ChildItem -Exclude "*.xml","*.pdf","*.cbz","Folder.jpg","Folder.png", "folder.jpg", "folder.png"
|
|
foreach ($file in $capitalizeFiles){
|
|
$file.FullName
|
|
ReNamer.exe /silent /rename number $file
|
|
Wait-Process -Name "ReNamer"
|
|
}
|
|
}
|
|
<#Set-Location 'F:\Library\Graphic Novels\'
|
|
foreach ($directory in Get-ChildItem -Directory){
|
|
ReNamer.exe /silent /rename Capitalize $directory.FullName
|
|
Wait-Process -Name "ReNamer"
|
|
}#>
|
|
}
|
|
|
|
function findCrossovers{
|
|
$seriesCollectionNames = @(
|
|
"Amory Wars"
|
|
"Batman"
|
|
"Borderlands"
|
|
"Brit"
|
|
"Clive Barker"
|
|
"Colder"
|
|
"Constantine"
|
|
"Critical Role"
|
|
"Dark Ark"
|
|
"Deadpool"
|
|
"Dicks"
|
|
"Ether"
|
|
"Fables"
|
|
"Grimm Fairy Tales"
|
|
"Guardians of the Galaxy"
|
|
"Gwenpool"
|
|
"Hack Slash"
|
|
"Harley Quinn"
|
|
"Hellboy"
|
|
"Hercules"
|
|
"Joker"
|
|
"Justice League"
|
|
"Kick-Ass"
|
|
"Lazarus"
|
|
"Lobo"
|
|
"Mad Max"
|
|
"Midnighter"
|
|
"Nailbiter"
|
|
"Pilot Season"
|
|
"Punisher"
|
|
"Rumble"
|
|
"Sonic"
|
|
"Star Wars"
|
|
"Suicide Squad"
|
|
"The Boys"
|
|
"The Last Zombie"
|
|
"The Realm"
|
|
"The Walking Dead"
|
|
"Thor"
|
|
"Transformers"
|
|
"Venom"
|
|
"Vikings"
|
|
"WWE"
|
|
"Wolverine"
|
|
"X-Men"
|
|
)
|
|
$seriesCollectionDirectories = @(
|
|
"F:\Library\Graphic Novels\Comic\Amory Wars"
|
|
"F:\Library\Graphic Novels\Comic\Batman"
|
|
"F:\Library\Graphic Novels\Comic\Borderlands"
|
|
"F:\Library\Graphic Novels\Comic\Brit"
|
|
"F:\Library\Graphic Novels\Comic\Clive Barker"
|
|
"F:\Library\Graphic Novels\Comic\Colder"
|
|
"F:\Library\Graphic Novels\Comic\Constantine"
|
|
"F:\Library\Graphic Novels\Comic\Critical Role"
|
|
"F:\Library\Graphic Novels\Comic\Dark Ark"
|
|
"F:\Library\Graphic Novels\Comic\Deadpool"
|
|
"F:\Library\Graphic Novels\Comic\Dicks"
|
|
"F:\Library\Graphic Novels\Comic\Ether"
|
|
"F:\Library\Graphic Novels\Comic\Fables"
|
|
"F:\Library\Graphic Novels\Comic\Grimm Fairy Tales"
|
|
"F:\Library\Graphic Novels\Comic\Guardians of the Galaxy"
|
|
"F:\Library\Graphic Novels\Comic\Gwenpool"
|
|
"F:\Library\Graphic Novels\Comic\Hack Slash"
|
|
"F:\Library\Graphic Novels\Comic\Harley Quinn"
|
|
"F:\Library\Graphic Novels\Comic\Hellboy"
|
|
"F:\Library\Graphic Novels\Comic\Hercules"
|
|
"F:\Library\Graphic Novels\Comic\Joker"
|
|
"F:\Library\Graphic Novels\Comic\Justice League"
|
|
"F:\Library\Graphic Novels\Comic\Kick-Ass"
|
|
"F:\Library\Graphic Novels\Comic\Lazarus"
|
|
"F:\Library\Graphic Novels\Comic\Lobo"
|
|
"F:\Library\Graphic Novels\Comic\Mad Max"
|
|
"F:\Library\Graphic Novels\Comic\Midnighter"
|
|
"F:\Library\Graphic Novels\Comic\Nailbiter"
|
|
"F:\Library\Graphic Novels\Comic\Pilot Season"
|
|
"F:\Library\Graphic Novels\Comic\Punisher"
|
|
"F:\Library\Graphic Novels\Comic\Rumble"
|
|
"F:\Library\Graphic Novels\Comic\Sonic"
|
|
"F:\Library\Graphic Novels\Comic\Star Wars"
|
|
"F:\Library\Graphic Novels\Comic\Suicide Squad"
|
|
"F:\Library\Graphic Novels\Comic\The Boys"
|
|
"F:\Library\Graphic Novels\Comic\The Last Zombie"
|
|
"F:\Library\Graphic Novels\Comic\The Realm"
|
|
"F:\Library\Graphic Novels\Comic\The Walking Dead"
|
|
"F:\Library\Graphic Novels\Comic\Thor"
|
|
"F:\Library\Graphic Novels\Comic\Transformers"
|
|
"F:\Library\Graphic Novels\Comic\Venom"
|
|
"F:\Library\Graphic Novels\Comic\Vikings"
|
|
"F:\Library\Graphic Novels\Comic\WWE"
|
|
"F:\Library\Graphic Novels\Comic\X-Men\Wolverine"
|
|
"F:\Library\Graphic Novels\Comic\X-Men\X-Men"
|
|
)
|
|
for ($i=0; $i -lt $seriesCollectionDirectories.Count; $i++){
|
|
set-location $seriesCollectionDirectories[$i]
|
|
$files = Get-ChildItem -Recurse -File
|
|
for($ii=0; $ii -lt $seriesCollectionNames.Count; $ii++){
|
|
if (!($files.Name -match $seriesCollectionNames[$i])){
|
|
}
|
|
else {
|
|
if($files.Name -match $seriesCollectionNames[$ii]){
|
|
foreach ($file in $files){
|
|
if ($seriesCollectionNames[$i] -eq $seriesCollectionNames[$ii]){}
|
|
else{
|
|
#Write-Host 'Comparing ' + $seriesCollectionNames[$ii] + ' in ' $seriesCollectionNames[$i]
|
|
$file.Name
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function newest{
|
|
$dirs2Monitor = @(
|
|
'F:\Library\Graphic Novels\Manga\Boku No Hero Academia\Boku No Hero Academia'
|
|
'F:\Library\Graphic Novels\Manga\Boruto ~ Naruto Next Generations'
|
|
'F:\Library\Graphic Novels\Manga\Detective Conan'
|
|
'F:\Library\Graphic Novels\Manga\Dragon Ball Super'
|
|
'F:\Library\Graphic Novels\Manga\My Father Became A Cute Vtuber Girl!'
|
|
'F:\Library\Graphic Novels\Manga\Onepunch-Man'
|
|
'F:\Library\Graphic Novels\Manga\Shaman King\Shaman King ~ The Super Star'
|
|
'F:\Library\Graphic Novels\Manga\Boku No Hero Academia\Vigilante ~ Boku No Hero Academia Illegals'
|
|
'F:\Library\Graphic Novels\Manga\Kaiju No. 8'
|
|
)
|
|
foreach ($dir in $dirs2Monitor){
|
|
set-location $dir
|
|
$directoryFiles = Get-ChildItem -File
|
|
$lastFile = SortNaturally -strArray $directoryFiles.Name | Select-Object -last 1 #Get the last file
|
|
$mangaName = $lastFile.Split(' - ')
|
|
$mangaIssue = $mangaName[1].split('.')
|
|
Write-Color 'The newest issue of ', $mangaName[0], ' is ', $mangaIssue[0] -Color White, Yellow, White, Blue
|
|
}
|
|
Write-Separator
|
|
}
|
|
|
|
function routine{
|
|
fix2.ps1 3 'F:\Library\Graphic Novels\Comic'
|
|
compress
|
|
removeEmptyDirectory
|
|
Move-Directories
|
|
foreach ($Location in $Locations){
|
|
set-location $Location
|
|
cleanNames
|
|
set-location $Location
|
|
decimals
|
|
set-location $Location
|
|
pad
|
|
set-location $Location
|
|
removeEmptyDirectory
|
|
}
|
|
set-location $rootDirectory
|
|
Get-ChildItem -Recurse -File '*zip' | Rename-Item -NewName {[System.IO.Path]::ChangeExtension($_.Name, "cbz")} #Rename every zipped file into cbz
|
|
|
|
foreach ($Location in $Locations){
|
|
set-location $Location
|
|
missingFiles
|
|
}
|
|
set-location
|
|
}
|
|
|
|
Write-Color '1) ', 'Variable task' -Color White, Yellow
|
|
Write-Color '2) ', 'Remove empty directories' -Color White, Yellow
|
|
Write-Color '3) ', 'Decompress' -Color White, Yellow
|
|
Write-Color '4) ', 'Compress' -Color White, Yellow
|
|
Write-Color '5) ', 'Fix filenames' -Color White, Yellow
|
|
Write-Color '6) ', 'Find missing issues' -Color White, Yellow
|
|
Write-Color '7) ', 'Routine' -Color White, Yellow
|
|
Write-Color '8) ', 'Print the newest manga for special list' -Color White, Yellow
|
|
Write-Color '9) ', 'Directory Tree' -Color White, Yellow
|
|
Write-Separator
|
|
$selection = Read-Host
|
|
Write-Separator
|
|
|
|
|
|
switch ($selection)
|
|
{
|
|
'1' {findCrossovers}
|
|
'2' {removeEmptyDirectory}
|
|
'3' {decompress}
|
|
'4' {compress}
|
|
'5' {
|
|
OnePiece
|
|
set-location $rootDirectory
|
|
decimals
|
|
set-location $rootDirectory
|
|
cleanNames
|
|
set-location $rootDirectory
|
|
cleanNames
|
|
set-location $rootDirectory
|
|
pad
|
|
}
|
|
'6' {missingFiles}
|
|
'7' {routine}
|
|
'8'{newest}
|
|
'9'{DirectoryTree}
|
|
} |