Не уверен, что вы делаете неправильно, но в Windows 10 работает следующее:
Пакетный файл с именем "test.cmd" с ярлыком для него с именем "test.lnk":
attrib +h test.lnk && REM "hide file" pause attrib -h test.lnk && REM "unhide file"
Он скрывает ярлык, делает паузу и показывает ярлык. Это работает как из ярлыка, так и из командного файла.