Estou escrevendo um arquivo em lotes para abrir o Netflix no Google Chrome no modo de tela cheia. Meu conhecimento de arquivos em lote é infantil, embora ...
chrome.exe --start-fullscreen --app=https://www.netflix.com
Obviamente, isso funciona quando executado no mesmo diretório que o executável chrome, mas não funciona em nenhum outro lugar.
Estou procurando uma maneira de escrever o arquivo em lotes para pesquisar e localizar o chrome.exe e, em seguida, executá-lo com as opções acima. Dessa forma, eu posso compartilhar o arquivo em lotes com outras pessoas e ele funcionará independentemente de seus caminhos. Isso pode ser feito?
--editar--
Como Appleoddity sugere que a pesquisa é desnecessária, essa seria a melhor maneira de escrever um arquivo em lotes para esse fim ?:
@echo off
cd\program files (x86)\google\chrome\application
chrome.exe --start-fullscreen --app=https://www.netflix.com
windows
command-line
google-chrome
batch-file
SUA MÃE
fonte
fonte
program files
ou por usuário em%localappdata%
. Você também pode consultar as chaves do registro para o local da instalação. Procurar na unidade será terrivelmente ineficiente.Respostas:
Como as pessoas podem ter arquivos de programa em uma unidade ímpar, em vez de C (incomum, mas possível), é melhor usar a variável do sistema para a pasta de arquivos do programa. Além disso, como pode estar na pasta de dados do aplicativo local, devemos verificar também.
fonte
else if
para verificar o%programfiles%
caminho também, pois você não pode assumir que o sistema operacional será de 64 bits.Program Files (x86)
instalação do Google Chrome, no entanto, esse script em lote aparentemente tenta abrir o meu%localappdata%
em cada PC. Vocês poderiam confirmar?"C:\Program Files\google\chrome\application\chrome.exe" --start-fullscreen --app=https://www.netflix.com The system cannot find the path specified.
Eu escrevi algo que funciona. O que eu não poderia ter feito sem a publicação de Sir Adelaide. Então, obrigado, sir Adelaide, por seu exemplo. Agradeço também a todos que contribuíram; tem sido educativo :)
(Escolhi o lote em vez do PowerShell porque qualquer pessoa com quem desejasse compartilhar o script do PowerShell precisaria primeiro alterar suas configurações de política de execução. O que não é necessário no lote.)
fonte
ExecutionPolicy Bypass
assim ocorre no tempo de execução ou qualquer outra coisa . superuser.com/questions/1282303/… Apenas para sua informação, mais do que qualquer coisa para você.Definitivamente, eu recomendaria a conversão para o PowerShell (é mais fácil, na minha opinião) e tem muitos cmd-lets para ajudar com coisas como essa.
Nesse caso, assumimos que o Google Chrome possui 2 caminhos de instalação e, portanto, essa é a principal variável que precisamos levar em consideração. Usando a opção Caminho do Teste , podemos ditar 2 caminhos UNC para a opção em potencial.
Aqui está um script que usa o "Caminho de teste". Podemos testar se o Google Chrome existe em Arquivos de programas (x86) e, se não, atribuímos o valor de LocalAppData.
Aqui está:
Observe que o PowerShell foi ativado por padrão no Windows Vista (eu acredito) e exige que o Net Framework funcione - o que deve ser ativado na maioria das instalações modernas de sistemas operacionais.
Atualizar
Devido aos comentários afirmando que isso pode não ser tão robusto quanto necessário (como não podemos assumir que
C:\
é o caminho da instalação do SO), fiz uma pequena "melhoria":Essencialmente, criamos variáveis ("
$OSInstappPath
" e "$OSLocalAppData
" que são variáveis vinculadas ao sistema) para o caminho da instalação no seu PC (pois o caminho UNC pode mudar dependendo de quem o executa.Em seguida, criamos 2 variáveis adicionais para os dois caminhos onde
chrome.exe
houver. A funçãoConfirmSetPaths
testará sechrome.exe
existe no caminho "padrão" no PC (neste caso, usamos "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
").Se existir aqui, inicia o programa. Caso contrário, ele altera a variável para
$GoogleChrome
ser a pasta Local App Data e, em seguida, executa a partir daqui.Alterar:
$env
variáveis para ditar o caminho de instalação do SO;fonte
Set-ExecutionPolicy -Unrestricted