C:\Progra~2在OEM版本的Windows 8中不工作

C:\Progra~2在OEM版本的Windows 8中不工作,windows,windows-8,batch-file,Windows,Windows 8,Batch File,我正在Windows 8中创建一个批处理文件,该批处理文件不接受其正文中的“C:\Program files”,因为程序和文件之间的空格给出了一个错误。因此,我使用了“C:\Progra~2” 我想访问程序文件(x86) 我有两台Windows8电脑:Windows8Pro和Windows8OEM 当我从文件资源管理器中键入“C:\Progra~2”以访问程序文件(x86)时,它会在Windows 8 PRO中成功打开 但当我在Windows8OEM中做同样的事情时,它说 Windows找不到C

我正在Windows 8中创建一个批处理文件,该批处理文件不接受其正文中的
“C:\Program files”
,因为程序和文件之间的空格给出了一个错误。因此,我使用了
“C:\Progra~2”

我想访问
程序文件(x86)

我有两台Windows8电脑:Windows8Pro和Windows8OEM

当我从文件资源管理器中键入
“C:\Progra~2”
以访问
程序文件(x86)
时,它会在Windows 8 PRO中成功打开

但当我在Windows8OEM中做同样的事情时,它说

Windows找不到C:\Progra~2

我不确定这是否是PRO和OEM版本的问题


有人能帮我找到解决方案吗?

使用批处理内置常量:%ProgramFiles%。它也适用于非英语windows版本,而您的~2不适用。

您确定两台计算机上都有两个程序文件吗?请尝试
C:\Progra~1
,看看是否打开了正确的文件夹


如果要打开常规程序文件夹,请使用
%ProgramFiles%

是的,两台计算机中都有程序文件和程序文件(x86)。即使C:\Program-1在OEM PC中也不起作用。您可以执行
DIR C:\/ad/x
查看文件夹的短文件名。旧的DOS 8.3短名称映射是不可预测的。您几乎肯定会因为忘记在文件名周围使用双引号而陷入这种麻烦。必须确保目录名中的嵌入空间不会引起问题。当您正确使用环境变量时,您仍然需要它们。请您为我提供一个windows 8的示例。在批处理文件中,我也使用C:\Progra~2\Applicationname\Service.exe-s
“C:\Program Files(x86)\Application name\Service.exe”-s