Contexto
No dia a dia de um analista de sistemas Protheus (TOTVS), pode ser trabalhoso orientar os usuários para acessarem um ambiente específico a partir do seu computador local com sistema operacional Windows. Algumas estratégias envolvem enviar uma pasta zipada com os arquivos/atalhos devidamente configurados ou ainda fazer a conexão remota com o computador para realizar a configuração.
Na prática, isso traz alguns inconvenientes:
- mau uso do tempo do analista: essa tarefa simples pode exigir um tempo que poderia ser melhor aproveitado em outra atividade;
- participação desnecessária do usuário final na configuração dos ambientes;
- demora em atividades repetitivas: acessar a pasta, criar um atalho com parametrizações específicas e enviá-lo para a área de trabalho;
- outros desafios relacionados.
Solução
Copie o script abaixo para um arquivo com extensão .bat e disponibilize para os usuários na forma de link (preferencialmente centralizado e disponível a todos os usuários do sistema).
Dinâmica de Funcionamento
- Passo 01: o analista precisa que um ou mais usuários acesse(m) um ambiente;
- Passo 02: o analista informa ao(s) usuário(s) sobre o nome da conexão e do ambiente no servidor;
- Passo 03: o usuário clica no link vinculado ao script e preenche as informações solicitadas (nome da conexão e ambiente no servidor); e
- Passo 04: ao finalizar as etapas do script, o atalho será criado na área de trabalho do usuário.
Script
@ECHO OFF
REM ====================================================
REM -- Script para criar atalho personalizado do Protheus
REM --
REM -- Autor: João Renes
REM -- Data: 14/03/2022
REM ====================================================
REM => variáveis com valores estáticos
set path_protheus=C:\Protheus\
set path_desktop="%USERPROFILE%\Desktop\"
set nome_exe=smartclient.exe
set path_smartclient = ""
if not exist %path_protheus% (
echo "== PROBLEMA: Pasta Protheus NAO foi encontrada =="
goto finalizar
)
if not exist %path_desktop% (
echo "== PROBLEMA: Desktop NAO localizado =="
goto finalizar
)
:definir_nome_atalho
set /p nome_atalho=Informe o nome do atalho:
if "%nome_atalho%" EQU "" (
echo "== PROBLEMA: Informe um nome para o atalho."
goto definir_nome_atalho
)
:definir_ambiente_servidor
set /p amb_servidor=Informe o nome do ambiente (servidor):
if "%amb_servidor%" EQU "" (
echo "== PROBLEMA: Informe um ambiente (servidor):"
goto definir_ambiente_servidor
)
:definir_ambiente_cliente
set /P amb_local=Informe o nome do ambiente (Cliente):
if "%amb_local%" EQU "" (
echo "== PROBLEMA: Informe um ambiente (Cliente):"
goto definir_ambiente_cliente
)
REM => variáveis com valores dinâmicos
set atalho="%USERPROFILE%\Desktop\%nome_atalho%"
set parametros= -m -p=SIGAADV -c=%amb_local% -e=%amb_servidor%
if exist %atalho%".lnk" (
echo "== PROBLEMA: Atalho ja existe =="
goto finalizar
)
for /f "delims=" %%D in ('dir %path_protheus%* /W /O-N /T:W /A:D /b') do (
set "path_smartclient=%path_protheus%%%D\%nome_exe%"
goto end
)
:end
echo ....criando atalho %nome_atalho% ...
echo Set oWS = WScript.CreateObject("WScript.Shell") > CreateShortcut.vbs
echo sLinkFile = %atalho% + ".lnk" >> CreateShortcut.vbs
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> CreateShortcut.vbs
echo oLink.TargetPath ="%path_smartclient%">> CreateShortcut.vbs
echo oLink.Arguments ="%parametros%">> CreateShortcut.vbs
echo oLink.Save >> CreateShortcut.vbs
cscript CreateShortcut.vbs
del CreateShortcut.vbs
echo ....SUCESSO: atalho %nome_atalho% criado corretamente
:finalizar
pause