Question: So I have this bit from a script of batch code I'm writing:

```
set /P Line=<Line.txt
set Line=%Line:~6,-1%
echo %Line% > Stripped.txt

:IsLineSay
IF /I %Line%==Say goto DoTheSay
IF /I %Line%==Pause goto DoThePause

set Line=%Line:~0,-1%
goto IsLineSay

:DoTheSay
cls
echo hi
pause

```

(Line.txt contains `100 | Say-`)

Whenever I run it it closes at the `IF /I %Line%==Say goto DoTheSay` part. It doesn't give an error message or anything, just quits the batch file.

Why is this happening and any ideas on how to fix it? I have absolutely no idea why this happens. Thanks in advance!

Answer: 
It's the `|` that makes trouble. The parser doesn't treat it like a normal character. It's called a "pipe" and is meant to transfer the output of the command before to the command after. You can avoid it by quoting your arguments:

```
if /i "100 | say" == "100 | Say" echo yes

```
Make sure to put quotation marks just in case:

```
IF /I "%Line%"=="Say" goto DoTheSay

```