如何在Windows 10上从命令行运行路径中包含空格的可执行文件?

sqyvllje  于 7个月前  发布在  Windows
关注(0)|答案(3)|浏览(198)
H:\>"H:\Program Files\R\R-3.4.0beta\bin\R.exe"
'H:\Program' is not recognized as an internal or external command,
operable program or batch file.

H:\>"H:\Progra~1\R\R-3.4.0beta\bin\R.exe"
The system cannot find the path specified.

H:\>H:\Progra~1\R\R-3.4.0beta\bin\R.exe
The system cannot find the path specified.

字符串
我尝试使用". "Progra~1,两者都不能在Windows 10上工作。
我做错了什么?

zaq34kh6

zaq34kh61#

**简答:**使用& 'C:\path with spaces\app.exe'
**说明:**只要在powershell中输入你的路径,当你选择任何包含空格的目录时,使用TAB自动完成。Powershell会自动插入 * 单引号 * 'bla bla',它还会在前面放一个&,这是需要将字符串视为应该执行的东西。继续像往常一样完成你的路径。

u0njafvf

u0njafvf2#

要做到这一点-我不敢相信我现在才弄明白这一点-是使用Windows短名称生成的文件与非8dot 3名称。要获得路径或程序名的问题,输入dir /x <path to program>。它会吐出类似PROGRA~1Program Files文件夹。当然,你必须这样做的目录目录,目录,如果你有多个文件/文件夹的名称中有空格,这很麻烦。如果你想用短名称格式化完整路径,你可以这样做:

for %I in (*) do echo %~sI

字符串
例如,如果我想访问的文件是C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\License Terms\License_msodbcsql_ENU.txt,我可以输入:

for %I in ("C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\License Terms\License_msodbcsql_ENU.txt") do echo %~sI


我得到的是更简单的C:\PROGRA~1\MICROS~2\CLIENT~1\ODBC\170\LICENS~1\LICENS~1.TXT
如果不使用循环,你就不能查询整个目录路径,这很烦人,但它就是这样。
powershell可能有一个更简单的方法,但我很确定没有从命令行提示符。

agyaoht7

agyaoht73#

你一定是做错了什么,因为双引号封装了可执行文件的路径,包括空格。
为确保操作正确,请开始键入命令的路径,并在F:\Program之后使用TAB,直到看到正确的路径,在您的情况下,它会自动执行此操作

"F:\Program Files"

字符串
使用箭头键回到结束引号后面,继续路径并使用tab,直到到达。

"H:\Program Files\R\R-3.4.0beta\bin\R.exe"


您也可以尝试使用Start发布它

start "" "H:\Program Files\R\R-3.4.0beta\bin\R.exe"


如果您的cmd窗口在“Program Files”所在的实际系统驱动器上打开,您可以运行此命令,而不是添加驱动器号:

".\Program Files\R\R-3.4.0beta\bin\R.exe"


或者将其添加到环境变量中,并带有路径,那么它应该只执行:

R.exe

相关问题