2013-09-12 14:49:06 +0000 2013-09-12 14:49:06 +0000
53
53
Advertisement

Usando caminhos relativos para atalhos do Windows

Advertisement

Tenho um esquema de pastas como (versão altamente simplificada):

New Files
 >Tools
 >Scripts
Tested Files
 >Tools
 >Scripts

… e gostaria de ter um atalho em cada pasta desde as pastas infantis “Novos Ficheiros”, até à pasta infantil “Ficheiros Testados”. Mas esta pasta pode ser movida de vez em quando, o que quebraria os referidos atalhos.

Existe alguma forma de fazer um atalho relativo para cada pasta? Lembro-me de fazer isto em HTML onde se podia definir um caminho, algo do tipo .../Files para voltar a um dos pais e depois para uma nova pasta, mas não tenho a certeza se isto é algo que suporte os atalhos do Windows?

PS: O caso dos atalhos igualmente relativos, quando o alvo é um ficheiro, é tratado em https://stackoverflow.com/questions/1169556/making-a-windows-shortcut-start-relative-to-where-the-folder-is . No caso presente, o alvo é uma pasta.

Advertisement

Respostas (8)

53
53
53
2013-09-12 15:08:36 +0000

Pode utilizar esta utilidade: Relativo .

Cria basicamente um atalho para “explorer.exe” com o parâmetro do seu caminho relativo com um clique direito (da mesma forma que se cria um atalho normal).

Claro que pode fazer isto manualmente.
No seu exemplo criaria um atalho em “New Files\Tools” para

%windir%\explorer.exe "..\..\Tested Files\Tools"

Pode usar o habitual menu de contexto “New/Create shortcut” do Windows para isto e escrever o comando acima na caixa “Type the location of the item”-box.

31
31
31
2013-09-12 15:45:43 +0000

Uma solução possível é utilizar um ficheiro de uma linha por lote em vez de um atalho para abrir o que quer que se queira abrir. O ficheiro de lote permitir-lhe-á utilizar caminhos relativos dentro de si mesmo e terá um directório de trabalho de qualquer pasta em que o ficheiro de lote seja colocado.


Outra opção é ter o seu atalho de início cmd.exe em vez disso, com o que quer que esteja a lançar e depois passar o que quer que esteja a lançar como argumento para cmd.exe

%COMSPEC% é uma variável de ambiente de pontos para o prompt de comando por defeito .

/C faz com que a consola se feche depois de executar o comando.

7
Advertisement
7
7
2014-05-12 01:21:58 +0000

Estou a usar uma solução semelhante num template que corre no meu ambiente de desenvolvimento web (abrir directório de projectos, abrir browser, correr WAMP, correr SCSS…)

Posso passar argumentos para o meu script de morcego e etc., isto é fixe. Certifique-se de colocar /c argumento depois de cmd.exe.

6
6
6
2016-08-18 16:47:41 +0000

Este truque funciona :

%COMSPEC% /C start“o seu nome exe sem caminho”

exemplo

%COMSPEC% /C start winmine.exe

4
Advertisement
4
4
2016-08-30 08:19:38 +0000

Pode usar mklink . Permite-lhe criar ligações simbólicas, ligações rígidas e ligações de directórios.

mklink /d Tools "..\Tested Files\Tools" (elevated command prompt)

Se não houver acesso elevado, pode usar o comando /j

mklink /j Tools "..\Tested Files\Tools"

Para se deslocar por toda a estrutura, deve usar o comando xcopy. Por exemplo, se toda a estrutura estiver abaixo de contentor :

container
   New Files
      <SYMLINKD> Scripts [..\Tested Files\Scripts]
      <SYMLINKD> Tools [..\Tested Files\Tools]
   Tested Files    
      Scripts
      Tools

introduzindo o comando

xcopy /b /e container container2

criará a seguinte estrutura:

container2
   New Files
      <SYMLINKD> Scripts [..\Tested Files\Scripts]
      <SYMLINKD> Tools [..\Tested Files\Tools]
   Tested Files    
      Scripts
      Tools

O interruptor /b* copiará as ligações simbólicas em vez de as converter para pastas. (Note-se que /b* tem um significado completamente diferente para o comando copy)

1
1
1
2015-09-26 02:33:10 +0000

Um atalho pode registar a sua localização numa variável e chamar um comando usando a variável. Por exemplo, criar o atalho “Grandparent” com o alvo:

%windir%\system32\cmd.exe /c set HERE="%CD%" && "C:\Here.bat"

Criar o ficheiro de lote “C:\Here.bat” com a única linha:

@%windir%\explorer.exe /n,/select, %HERE%

Agora, qualquer que seja a pasta Grandparent, quando se clica nela, o pai da sua pasta pai abre-se. Até trabalha com o avô num directório de raiz.

O seu ficheiro de lote poderia ter usado %HERE% em iniciar algo diferente de explorer.exe. Ou em vez de Here.bat após o && no alvo do atalho, poderia chamar um programa que faz uso de %HERE%.

No meu sistema o avô parece trabalhar com & ou &&.

1
Advertisement
1
1
2016-01-01 08:42:40 +0000

Se deixar a caixa 'Start In' vazia nas propriedades do Atalho, os links devem ser relativos ao directório de trabalho actual.

Veja também https://stackoverflow.com/a/17951772/40961

0
0
0
2019-06-20 16:48:10 +0000

Pode criar uma variável de ambiente que contenha o Caminho (relativo) para a pasta de destino ou uma pasta acima dela na estrutura do sistema de ficheiros.

Exemplo:

  • Variável de Ambiente:

  • Shortcut Target:

Pode usar o comando SETX do DOS para criar variáveis de ambiente.

Advertisement