Crie um atalho para o seu arquivo de lote na pasta shell:sendto e altere suas propriedades da seguinte forma:
- clique com o botão direito do mouse - > ˙Propriedades˙ - >
Shortcuttab; -
Segmentar - >
cmd /C "D:\bat\SU1003.bat"; -
Botão
Advanced- > Executar como administrador.
Observe que o primeiro echo "%CD%" no próximo snippet de código mostra o diretório de trabalho inicial do seu script ( "C:\Windows\system32" se lançado por SendTo feature):
==>type D:\bat\SU1003.bat
@echo off
echo initial working directory "%CD%"
pushd "%~dp1"
echo current working directory "%CD%"
echo paramer #1 supplied "%~1"
echo all paramers %*
net session
pause

Exemplodesaída
initialworkingdirectory"C:\Windows\system32"
current working directory "D:\bat & 2"
paramer #1 supplied "D:\bat & 21003 test.txt"
all paramers "D:\bat & 21003 test.txt" "D:\bat & 2\batchfile.bat"
There are no entries in the list.
Press any key to continue . . .
A saída acima mostra:
- funciona com um caminho e nome de arquivo um pouco incomuns, contendo não apenas espaços, mas até mesmo
&de caracteres e ... - funciona como administrador, caso contrário, o comando
net sessionretornaráSystem error 5 has occurredeAccess is deniedmensagens de erro.