Questão O Windows não consegue encontrar C: \ Program…?


Eu estou tentando escrever um arquivo de lote para abrir o gmail em incógnito e inserir minhas credenciais automaticamente quando o PC é iniciado. Baseado em esta postagem Eu tenho o seguinte:

@echo off
cls
start %ProgramFiles(x86)%\Google\Chrome\Application\Chrome.exe --incognito "https://accounts.google.com/ServiceLogin?service=mail&passive=true&rm=false&continue=https://mail.google.com/mail/&ss=1&scc=1&ltmpl=default&ltmplcache=2&emr=1&osid=1#identifier"
exit

No entanto, quando clico duas vezes no .bat arquivo, uma janela cmd aparece com uma janela de erro na frente que diz:

O Windows não consegue encontrar 'C: \ Program'. Certifique-se de ter digitado corretamente e tente novamente.

Eu acho que o cmd está avaliando %ProgramFiles(x86)% sem colocar aspas em torno dele ou algo assim. Eu sou novo em escrever arquivos de morcego, então não sei como consertar isso.

Aqui estão alguns detalhes sobre o meu sistema:

Windows 10 Pro 
V. 1607 
OS Build 14393.479
64-bit
Surface Book

2


origem


Você poderia explicar como sua pergunta ou a resposta envolve a inserção de credenciais automaticamente? - barlop
@barlop Eu ainda não cheguei tão longe, só queria incluí-lo na chance de alguém incluí-lo em sua resposta. De minha pesquisa eu não acho que é possível, exceto, talvez, por executar um arquivo javascript uma vez que a página é aberta. Vou postar nos comentários se eu descobrir. - Travis Heeter
eu ouvi falar de selênio .. outra coisa, talvez mais apropriada, é uma extensão chamada iMacros - barlop
@barlop Eu consegui inserir credenciais com AutoHotKey. No entanto, foi há um tempo atrás, então eu não sei o script que eu usei. Iirc não foi tão difícil como eu pensei que ia ser. Se eu encontrar, vou postar. - Travis Heeter


Respostas:


Mesmo se você estiver usando o var do ambiente

%ProgramFiles(x86)%

geralmente se expande para

C:\Program Files (x86)

Caminhos com espaços neles devem ser colocados entre aspas

Em segundo lugar, o Start usa o primeiro argumento em Quotes como título. Vejo Help Start

Esse lote alterado funciona conforme o esperado:

@echo off
cls
start "" "%ProgramFiles(x86)%\Google\Chrome\Application\Chrome.exe" --incognito "https://accounts.google.com/ServiceLogin?service=mail&passive=true&rm=false&continue=https://mail.google.com/mail/&ss=1&scc=1&ltmpl=default&ltmplcache=2&emr=1&osid=1#identifier"
exit

5





A resposta dessa postagem era usar o caminho do usuário em vez de Arquivos de programas (x86). Portanto, faz a infeliz suposição de que não haverá espaço no caminho.

% userprofile% \ AppData \ Local \ Google \ Chrome \ Aplicativo \ Chrome.exe

Como "Arquivos de Programas (x86)" tem um espaço, você precisa cercar o caminho entre aspas.

"% ProgramFiles (x86)% \ Google \ Chrome \ Application \ Chrome.exe"


1





Como a expansão de {% Programfiles (x86)%} inclui um espaço, você deve ter aspas em torno dele. Como resultado, você deve dobrar as aspas que já possui na linha de comando, resultando em uma linha como esta:

start "%ProgramFiles(x86)%\Google\Chrome\Application\Chrome.exe --incognito ""https://accounts.google.com/ServiceLogin?service=mail&passive=true&rm=false&continue=https://mail.google.com/mail/&ss=1&scc=1&ltmpl=default&ltmplcache=2&emr=1&osid=1#identifier"""

Note que já faz um bom tempo desde que eu precisei fazer isso, e a resposta correta poderia ser essa, onde o comando e o parâmetro são citados separadamente:

start "%ProgramFiles(x86)%\Google\Chrome\Application\Chrome.exe --incognito" "https://accounts.google.com/ServiceLogin?service=mail&passive=true&rm=false&continue=https://mail.google.com/mail/&ss=1&scc=1&ltmpl=default&ltmplcache=2&emr=1&osid=1#identifier"

Um deles funcionará. Eu simplesmente não consigo lembrar qual agora.


0



Isso não vai funcionar. O primeiro argumento entre aspas se torna o título da janela ... - DavidPostill♦