A parte gli errori del codice, c'e' un problema di fondo ...

Se il separatore e' il pipe (|), questo verra' intercettato dal DOS che lo usa per se' stesso ... Non lo ritroverai tra gli argomenti ...