使用默认应用打开名称中包含 space(或 &)的文件

open file that has a space (or &) in its name, with default app

我正在尝试打开一个文件,路径是 C:\Users\kevin\Documents\LIN KED.png(或 C:\Users\kevin\Documents\LIN&KED.png)。文件路径将在 linked_file_command.

我想在 windows 的默认应用程序中打开该文件。我想继续使用 linked_file_command 字符串,只是为了有一个变量而不是硬编码路径。

我尝试了以下方法:

1) system %{cmd /c "start #{linked_file_command}"}
(from  )

2) system('cmd /c start "" C:\Users\kevin\Documents\LIN KED.png')
(from https://www.ruby-forum.com/topic/209961 )

两者的结果:

Le system ne peut trouver le fichier C:\Users\kevin\Documents\LIN。 (系统找不到文件C:\Users\kevin\Documents\LIN)

提前致谢^.^

这应该有效

filePath = "c:\path\to\file name.jpg"
system %{cmd /c "start #{filePath}"}

管理SPACE

system('cmd /c start "" "C:\Users\kevin\Documents\LIN KED.png"')

我在这里阅读超级用户。com/questions/511486/…

第一个“”用于shell window名称,第二个“”用于命令(参数)

管理 &

当我使用上面的行时不需要。

在其他情况下,尝试在 & 符号前添加一个“^”

system('cmd /c start "" "C:\Users\kevin\Documents\LIN^&KED.png"')

来自 : How do I escape ampersands in batch files?