
Tenho os 2 arquivos em lote abaixo que desejo converter para Powershell.
Eu tenho bat1.bat associado a uma extensão de arquivo, então quando clico duas vezes nessa extensão bat1.bat é executado e o primeiro parâmetro é o nome do arquivo que foi clicado duas vezes
Por que usar 2 arquivos bat? Bem, se eu apenas usar bat2, uma janela de comando será aberta e visível até que o programa final seja encerrado. Ao usar os 2 arquivos em lote acima, recebo apenas um ícone da barra de tarefas (do qual quero me livrar). O que me leva ao motivo pelo qual desejo converter para Powershell. Quero poder clicar duas vezes em um dos arquivos e fazer com que o PS abra o programa Access e não tenha nenhum ícone ou qualquer indicação visual. Parece que meu programa Access é o programa que lida com arquivos com essa extensão.
Bat1.bat
@echo off
@START /MIN c:\temp\bat2.bat %1
exit
Bat2.bat
@echo off
"c:\temp\Test.accdb" /cmd %1
exit
Responder1
Não estou na frente de um PC para testar isso agora, mas você não poderia simplesmente associar a extensão do arquivo a um morcego que execute o seguinte?
@start "Access wrapper" "c:\temp\Test.accdb" /cmd %1
Sou totalmente a favor de mudar para o PowerShell, mas seu arquivo em lote será mais rápido inicialmente e, se bem me lembro, você pode passar um tipo de arquivo conhecido (como seu arquivo accdb) para o comando "iniciar" e ele descobrirá o que fazer abra-o com (ou seja, Access) e continue para a próxima linha do script (a menos que você passe "/wait"). Como não haveria uma próxima linha no script, o script e sua janela simplesmente desapareceriam.
Acho que você provavelmente poderia eliminar todo o lote com algumas edições criativas de registro, mas não estou em um PC agora para testar isso e não quero que as pessoas mexam no registro apenas com informações não testadas em minha memória.