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˙ - >
Shortcut
tab; -
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 session
retornaráSystem error 5 has occurred
eAccess is denied
mensagens de erro.