Como posso criar um atalho para iniciar um arquivo de lote em uma pasta?

0

Eu tenho tentado criar um atalho para iniciar um arquivo de lote uma pasta a partir do local do atalho. Eu não consegui encontrar e responder isso.

Eu consegui resolver isso usando um arquivo de lote intermediário na mesma pasta do atalho, como segue: Intermediate.bat :

@echo off
FOR %%V IN ("%~dp0..\") DO set curdrv=%%~dpV
start "" %curdrv%Oneup.bat

E o alvo do atalho é: %windir%\system32\cmd.exe /c Intermediate.bat

e o 'Start in' é deixado em branco.

Dessa forma, posso mover essas pastas para qualquer lugar na unidade ou em outra unidade e o atalho ainda funciona. No entanto, gostaria de deixar de fora o arquivo Intermediate.bat e iniciar o Oneup.bat diretamente. Eu tentei:

%windir%\system32\cmd.exe /c FOR %%V IN ("%~dp0..\") DO set curdrv=%%~dpV && start "" %curdrv%Oneup.bat

no alvo do atalho, mas não funciona.

Existe algum truque para fazer isso funcionar? Obrigado

    
por fhutt 17.01.2016 / 08:25

1 resposta

1

Eu gostaria de deixar de fora o arquivo Intermediate.bat e lançar o Oneup.bat diretamente.

I tried:

%windir%\system32\cmd.exe /c FOR %%V IN ("%~dp0..\") DO set curdrv=%%~dpV && start "" %curdrv%Oneup.bat

in the Target of the shortcut, but it doesn't work.

Existem dois problemas com o comando acima (que está sendo executado em um cmd shell):

  1. %% é usado dentro de arquivos em lote e % em uma linha de comando.

  2. % 0 (usado em %~dp0 ) é válido apenas dentro de um arquivo em lotes.

Você pode usar o seguinte destino de atalho (simplificado):

%windir%\system32\cmd.exe /c start "" ..\Oneup.bat

Como ..\ sempre retorna o diretório um nível acima do diretório atual.

Leitura Adicional

por 17.01.2016 / 09:12