Por que o meu diff.exe não roda na linha cmd?

0

Eu tenho vários utilitários instalados C:\program files (x86)\git\bin, muitos dos quais funcionam na linha de comando de sombra. Para não entrar em conflito com isso, prefiro NÃO adicionar essa pasta ao PATH, no entanto, quero poder digitar em diff a.txt b.txtqualquer lugar e executar diff nos dois.

Coisas que tentei:

  • Adicionada uma diff.exesubchave ao[HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths]
  • Criei um diff.lnkin C:\dev(que está no meu PATH) e foi adicionado .LNKao meu PATHEXT
  • Criou um diff.batcom o seguinte código:

    @"C:\Program Files (x86)\git\bin\diff.exe" *$

O único método que funcionou foi o último, que (embora seja executado diff) falha ao encontrar os arquivos especificados por meio da linha de comando.

Da mesma forma, o segundo método permitiu diffa execução se eu estivesse atualmente, C:\devmas não em outro lugar.

Eu tenho um doskeyscript que funciona como uma máquina de alias (notavelmente: npp=notepad++no cmd start), mas eu prefiro não recorrer a isso para isso. Eu vou se for preciso.

Alguma sugestão? Alguma idéia de por que o exposto acima não funcionou?

Adam Smith
fonte
11
Deve ser% *, não * $.
AFH
Uma sugestão. Por que você simplesmente não cria um link para o prompt de comando com uma variável PATH temporária?
Doktoro Reichard
Por que você está modificando as variáveis ​​ambientais PATH pelo registro?
Ramhound 19/07/2014
@ Ramhound eu não sou?
Adam Smith
Você já tentou a sugestão do @AFH%* , em vez de *$gostar @"C:\Program Files (x86)\git\bin\diff.exe" %*?
21414 Kevin Fegan

Respostas:

1

Alguma idéia de por que o exposto acima não funcionou?

Um pouco.

JdeBP
fonte
RE: *$Eu acredito que eu confundido que a partir de doskeyonde doskey alias=command *$está correta (talvez seja $*eu estou copiando da memória?)
Adam Smith
Sim, eu estava pensando em doskey, cuja sintaxe é doskey alias=command $*. Eu verifiquei minha variável de ambiente PATH e C:\devestava de fato no PATH, mas a mudei para uma pasta diferente ( C:\dev\path) e funcionou perfeitamente. Para quem não tenho resposta. Tenho certeza de que sua sugestão %*em um arquivo em lotes também funcionaria, obrigado!
Adam Smith