Вопрос: Windows не может найти C: \ Program ...?


Я пытаюсь написать пакетный файл для открытия 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

2
2017-12-12 22:11


Источник


не могли бы вы объяснить, как ваш вопрос или ответ включает ввод учетных данных автоматически? - barlop
@barlop Я еще так далеко не получил, просто хотел включить его вовремя, кто-то включил бы его в свой ответ. Из моих исследований я не думаю, что это возможно, за исключением, возможно, путем запуска javascript-файла после открытия страницы. Я напишу в комментариях, если я это выясню. - Travis Heeter
я слышал о селене .. Другое дело, может быть, более уместно, это расширение под названием iMacros - barlop
@barlop Мне удалось ввести учетные данные с помощью AutoHotKey, Однако, это было давно, поэтому я не знаю, какой сценарий я использовал. Это было не так сложно, как я думал, это будет. Если я найду это, я отправлю его. - Travis Heeter


Ответы:


Даже если вы используете среду 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

5
2017-12-12 22:25





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

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

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

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


1
2017-12-12 22:18





Поскольку расширение {% 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"

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


0
2017-12-12 22:25



Это не сработает. Первый аргумент в кавычках становится заголовком окна ... - DavidPostill♦