When I try to run this script it shows error message
cls
$p = Read-Host "Enter Path"
$regex = "\[([\w|\s*-]+)\]([\w|\s]+(?:\[[\w|\s]+\])?.*)\s*=\s*([\w|,|\s.']+)";
$option = [System.StringSplitOptions]::RemoveEmptyEntries
$pattern = '[^a-zA-Z]'
$studio_ID= Read-Host "Enter Studio Code e.g. SS-"
Get-ChildItem -Recurse -Hidden -LiteralPath $p -Filter *.nfo |
ForEach-Object {
$file = $_.FullName
$name = $_.BaseName
[xml]$fileData = Get-Content -LiteralPath $file;
$tvshow = $fileData.tvshow
$title = $fileData.tvshow.title
$imdb_id = $fileData.tvshow.imdb_id
$newimdb_id = $studio_ID+($title -replace $pattern,'')
if(-not $tvshow.zap2itid )
{
$childElement = $fileData.CreateElement("zap2itid")
$newXmlElement = $tvshow.AppendChild($childElement)
#$newXmlElement.InnerText = $newimdb_id
}
if( ($imdb_id -ne $newimdb_id) -and $name -eq "tvshow" )
{
Remove-Item $file -Force
$fileData.tvshow.imdb_id = $newimdb_id
$fileData.Save($file)
$_.Attributes ="Hidden"
Write-Host "File Update: $file"
}else{
#Write-Host "File Already correct: $name"
}
}
Above code works but it shows a error message
You cannot call a method on a null-valued expression.
At Update_IMDB_id.ps1:24 char:13
- $newXmlElement = $tvshow.AppendChild($childElement)
-
- CategoryInfo : InvalidOperation: (
, RuntimeException - FullyQualifiedErrorId : InvokeMethodOnNull