Existem duas maneiras de corrigir isso.
Você pode alterar o comando no arquivo em lote para nomear explicitamente a pasta:
move M:\Logs\*.* C:\NewLogFolder
Ou você pode alterar o local Iniciar em no atalho para o novo destino:
Eu tenho um arquivo de lote que move arquivos de uma pasta específica para a pasta atual (a pasta na qual o comando é executado), mas se eu criar um link de área de trabalho para esse arquivo de lote e tentar executá-lo, os arquivos movido para a pasta na qual o arquivo em lote reside, em vez da pasta na qual o comando está sendo executado. Por que isso seria? Existe alguma maneira de corrigir isso?
Uma maneira de contornar isso é usar o menu de contexto "Enviar para".
Se você "iniciar > executar" shell:sendto
, chegará à pasta mágica onde os atalhos de envio são mantidos. Você pode então adicionar um atalho ao seu arquivo de lote para o seu desktop e, em seguida, arraste o atalho do arquivo de lote para esta pasta (as permissões podem impedi-lo de adicionar diretamente).
Quando o arquivo de lote é executado pelo atalho, o parâmetro %1
será definido para a pasta ou arquivo destacado.
Então, se eu destacar a pasta "c: \ bar" e depois "Sendto & Fo ;.
foo.bat:
@echo off
echo %1
pause
Emitiria:
C:\Bar
Se o arquivo em lote foi:
move M:\logs\*.* %1
Você acabaria com o resultado adequado, desde que não realce um nome de arquivo. Portanto, teste os erros e a sanidade primeiro.