Windows 找不到 C:\Program...?

Windows 找不到 C:\Program...?

我正在尝试编写一个批处理文件,以隐身模式打开 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&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

答案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&ltmpl=default&ltmplcache=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&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"

其中有一个可以用。我只是现在想不起来是哪一个。

相关内容