我正在尝试编写一个批处理文件,以隐身模式打开 Gmail,并在 PC 启动时自动输入我的凭据。基于这个帖子我有以下内容:
@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<mpl=default<mplcache=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
答案1
即使你使用环境变量
%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<mpl=default<mplcache=2&emr=1&osid=1#identifier"
exit
答案2
该帖子的答案是使用用户路径而不是 Program Files (x86)。因此,它做出了一个不幸的假设,即路径中没有空格。
%用户配置文件%\应用程序数据\本地\谷歌\ Chrome \应用程序\ Chrome.exe
由于“Program Files (x86)”中有空格,因此需要用引号将路径括起来。
“%ProgramFiles(x86)%\Google\Chrome\Application\Chrome.exe”
答案3
由于 {%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<mpl=default<mplcache=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<mpl=default<mplcache=2&emr=1&osid=1#identifier"
其中有一个可以用。我只是现在想不起来是哪一个。