TProcess is NOT a shell, it doesn't handle redirection via pipe operator, nor <, >, 2> etc. The best way is to call sh (or whatever your shell is) and pipe those string to the process (use the Input property) then read the output (using Output property). This sure is OS, actually shell, specific. You may want to put the platform dependent codes in conditional compilation blocks.