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

2

Estou tentando gravar um arquivo de lote para abrir o Gmail no modo de navegação anônima e inserir minhas credenciais automaticamente quando o PC é inicializado. Com base em esta postagem , 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 arquivo .bat , uma janela cmd aparece com uma janela de erro na frente que diz:

Windows cannot find 'C:\Program'. Make sure you typed it correctly, and then try again.

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

Veja alguns detalhes sobre o meu sistema:

Windows 10 Pro 
V. 1607 
OS Build 14393.479
64-bit
Surface Book
    
por Travis Heeter 12.12.2016 / 23:11

3 respostas

5

Mesmo se você estiver usando o ambiente var

%ProgramFiles(x86)%

geralmente se expande para

C:\Program Files (x86)

Caminhos com espaços neles precisam ser colocados entre aspas

Segundo, o Start usa o primeiro argumento em Quotes como título. Veja Help Start

Este 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
    
por 12.12.2016 / 23:25
1

A resposta dessa postagem estava usando 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\Application\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"

    
por 12.12.2016 / 23:18
0

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 não consigo lembrar qual agora.

    
por 12.12.2016 / 23:25