Any idea why the above didn't work?
Alguns.
-
HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths
não tem efeito emcmd
, porquecmd
não usaShellExecuteEx
para executar programas. -
A criação de um arquivo
.lnk
deve ter funcionado. Da sua descrição, parece ser mais provável que a declaraçãoC:\dev
is on myPATH
. -
diff.bat
não funcionou como você queria porque a sintaxe que você estava usando para substituir todos os parâmetros posicionais era sem sentido.*$
não é nem um basismo acidental. Conforme observado,%*
é a sintaxe correta para fazer isso em scripts interpretados porcmd
. ( É também a sintaxe correta para o Take Command, que suporta%#
como bônus. )