1> is a special way of redirecting standard input and output.
If you had echoing on you would see cmd adding a 1 in front of your redirection, as you put a number there it doesn't bother.
The answer is to leave a space before the redirection character.
echo 1 >>test.txt
and leave ECHO ON and you'll see cmd change it to
echo 1 1>>test.txt
From The Windows NT Shell Scripting by Tim Hill
Table 2.4 Command Redirection Symbols
Symbol Description
>file Redirects command output to the file specified. You can also use a standard device name such as LPT1, CON, PRN or CONOUT$ as the file name. Any preexisting contents of the file are lost.
>>file Redirects command output to the file specified. If the file already exists, all command output is appended to the end of the file.
2>file Redirects command error output to the file specified. You can also use a standard device name such as LPT1, CON, PRN or CONOUT$ as the file name. Any preexisting contents of the file are lost.
2>&1 Redirects command error output to the same location as command output. This makes any command output redirection also apply to command error output.
cmd1 | cmd2 Pipes the command output of cmd1 to the command input of cmd2. Multiple pipe characters are allowed, creating a chain of commands, each sending output to the next command in the chain.
(echo 1)>>test.txt