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