Потому что когда ты задаёшь строку руками - ты должен сразу экранировать спецсиволы.
Когда ты пишешь так
var str = '\\C:\Папка\my\root\ts';
в переменную
str в памяти попадает
\C:Папкаmy<RF>oot<TAB>s
Соответственно ты не можешь заменить то, чего нет. Если строка в память попадёт сразу в нужном виде(из инпута, с серава, из файла) - тогда замена сработает.