Мне стало скучно, и я решил ответить на ваш вопрос, даже если вы проигнорировали информацию "Как задать хороший вопрос" ... [ хмурится ]
ОП нуждается в этом длябыть нечувствительным к регистру - а метод .Replace()
- нет.изменено использование оператора -replace
.
$FileName = 'Breaking.Bad.S01e03'
$Series = $FileName.Substring(0, $FileName.LastIndexOf('.')).Replace('.', '_')
# disabled the initial version since the OP now needs case-insensitive replacement
#$Season = $FileName.Split('.')[2].Split('e')[0].Replace('s', 'Season')
$Season = $FileName.Split('.')[2].Split('e')[0] -replace 's', 'Season'
$Series
$Season
output ...
Breaking_Bad
Season01
Я оставлю вам процесс построения пути из вышеперечисленного И как перемещать файлы.[ ухмылка ] вот пара подсказок ...
Get-Help Join-Path
Get-Help Move-Item
ОП изменил весь формат файлов, так что это версия, которая работает с этим форматом,другие форматы не были заданы, поэтому другие форматы не были закодированы.
, если нужны другие форматы, и ОП не может их кодировать, задайте новый вопрос.
# fake reading in filenames
# in real life, use Get-ChildItem
$FileList = @(
[System.IO.FileInfo]'Breaking.Bad.S01E01.DVDRip.XviD-ORPHEUS.avi'
[System.IO.FileInfo]'Breaking.Bad.s02E01.DVDRip.XviD-ORPHEUS.avi'
[System.IO.FileInfo]'Breaking.Bad.S03e01.DVDRip.XviD-ORPHEUS.avi'
[System.IO.FileInfo]'Breaking.Bad.s04e01.DVDRip.XviD-ORPHEUS.avi'
)
foreach ($FL_Item in $FileList)
{
$SeriesName = ($FL_Item.BaseName -split '\.s\d')[0].Replace('.', '_')
$SE_Info = $FL_Item.BaseName.Split('.')[-3] -split 'e'
$Season = $SE_Info[0] -replace 's', 'Season'
$Episode = 'Episode{0}' -f $SE_Info[1]
$SeriesName
$Season
$Episode
''
}
output ...
Breaking_Bad
Season01
Episode01
Breaking_Bad
Season02
Episode01
Breaking_Bad
Season03
Episode01
Breaking_Bad
Season04
Episode01
снова, я отсылаю вас к Join-Path
, New-Item и Move-Item
для создания путей назначения иперемещение файлов.