2

Я пытаюсь написать командный файл, чтобы открыть gmail в режиме инкогнито и автоматически вводить свои учетные данные при запуске компьютера. На основании этого поста у меня есть следующее:

@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

Однако, когда я дважды щелкаю по файлу .bat , появляется окно cmd с окном ошибки, которое говорит:

Windows не может найти «C:\Program». Убедитесь, что вы ввели его правильно, а затем повторите попытку.

Я думаю, что cmd оценивает %ProgramFiles(x86)% без кавычек или чего-то такого. Я новичок в написании файлов Bat, поэтому я не уверен, как это исправить.

Вот некоторые подробности о моей системе:

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

3 ответа3

5

Даже если вы используете Environment Var

%ProgramFiles(x86)%

обычно расширяется до

C:\Program Files (x86)

Пути с пробелами в них должны быть заключены в кавычки

Во-вторых, Start использует первый аргумент в Quotes в качестве заголовка. См. Help Start

Эта измененная партия работает, как и ожидалось:

@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
1

Ответом из этого поста было использование пути пользователя, а не Program Files (x86). Поэтому он делает неудачное предположение, что на пути не будет места.

% USERPROFILE%\AppData\Local\Google\Chrome\Application\ chrome.exe

Поскольку в «Program Files (x86)» есть пробел, вы должны заключить путь в кавычки.

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

0

Поскольку расширение {% Programfiles(x86)%} содержит пробел, вы должны заключить его в кавычки. В результате вы должны удвоить кавычки, которые у вас уже есть в командной строке, в результате чего строка будет выглядеть следующим образом:

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"""

Обратите внимание, что прошло довольно много времени с тех пор, как мне нужно было это сделать, и правильный ответ мог бы быть таким, где команда и параметр указываются отдельно:

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"

Один из них будет работать. Я просто не могу вспомнить, какой прямо сейчас.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .