title: Test-Path : Illegal characters in path
body: <p>I am trying to download a video series from channel9 using powershell, however I get this error on the first file, I think its the pipe character, but even with the replace statement its not working</p>
  
  <pre><code> function Get-Media
  {
      [CmdletBinding()]
      param
      (
          [Object]
          $url,
          [Object]
          $title,
          [Object]
          $path
      )
  
      $u = New-Object System.Uri($url)
      $name = $title
      $extension = [System.IO.Path]::GetExtension($u.Segments[-1])
      $fileName = $name + $extension
  
      $fileName = $fileName -replace "â€™", ''
      $fileName = $fileName -replace "\?", ''
      $fileName = $fileName -replace ":", ''
      $fileName = $fileName -replace '/', ''
      $fileName = $fileName -replace ",", ''
      $fileName = $fileName -replace '"', ''
      $fileName = $fileName -replace '|', ''
      $fileName = $fileName -replace '\#', ''
      $fileName = $fileName -replace '-', ''
  
      $fileName
  
      if (Test-Path($fileName)) {
          Write-Host 'Skipping file, already downloaded' -ForegroundColor Yellow
      }
      else
      {
          Invoke-WebRequest $url -OutFile (Join-Path -Path $path -ChildPath $fileName)
      }
  }
  
  function Get-VideosFromFeed
  {
      [CmdletBinding()]
      param
      (
          [Object]
          $feedUrl,
          [Object]
          $folder,
          [Object]
          $path
      )
  
      $feed=[xml](New-Object System.Net.WebClient).DownloadString($feedUrl)
  
      $downloadPath = (Join-Path -Path $path -ChildPath $folder)
  
      if (Test-Path($downloadPath)) {
          Write-Host 'Skipping folder, already exists' -ForegroundColor Yellow
      }
      else
      {
          New-Item -Path $downloadPath -ItemType directory -WarningAction SilentlyContinue
      }
  
      foreach($i in $feed.rss.channel.item) {
          foreach($m in $i.group){
              foreach($u in $m.content `
                      | Where-Object { `
                              $_.url -like '*mid.mp4' `
                           } | Select-Object -Property @{Name='url'; Expression = {$_.url}}, `
                                                       @{Name='title'; Expression = {$i.title}})
              {
                  Get-Media -url $u.url -title $u.title -path $downloadPath
              }
          }
      }
  }
  
  $physicalPath = "D:\Videos\Series"
  
  Get-VideosFromFeed -feedUrl 'https://channel9.msdn.com/Blogs/azurestack/feed/mp4high'                                                                          -path $physicalPath -folder 'azurestack'
  </code></pre>