Все плохо. Вот пример ввода:
```cd test; dir```
Вы парсите его вот на такое:
```cd```
```test```
```dir```