在命令行中打开包含其默认程序的空间的文件

时间:2013-05-30 05:01:00

标签: shell windows-7 command-line

我正在尝试通过其默认程序通过命令行打开一个可能包含空格的文件。我在这里读了几个答案,遗憾的是没有帮我解决问题。

简而言之,这将有效

C:\>"C:\Program Files\Envelope Manager\Dazzling\Dazzling.exe" C:\Users\Public\Documents\Endic\Dazzling\_thelayout.LYT

但是在文件名周围添加引号不会有任何好处

C:\>"C:\Program Files\Envelope Manager\Dazzling\Dazzling.exe" "C:\Users\Public\Documents\Endic\Dazzling\thelayout.LYT"

理想情况下,我希望这项工作(包括空格)

C:\>"C:\Program Files\Envelope Manager\Dazzling\Dazzling.exe" "C:\Users\Public\Documents\Endic\Dazzling\the new layout.LYT"

我想要的只是打开文件,有时包含一个Dazzling.exe空间,假设两个路径都可能包含空格。

我在前一篇文章中看到了对此页面的一个答案: http://ss64.com/nt/start.html

这不起作用

3 个答案:

答案 0 :(得分:0)

对我来说,这适用于Windows 7:

explorer.exe "\some\path\x x.txt"

用记事本打开x x.txt - 例如默认关联。

答案 1 :(得分:0)

如果Dazzling是.LYT文件的注册应用程序,那么只需使用启动命令:

start "" "C:\Users\Public\Documents\Endic\Dazzling\thelayout.LYT"

答案 2 :(得分:0)

试试这个 - 它使用短路径名。由于函数中的错误,它可能会失败。

@echo off
set "file=C:\Users\Public\Documents\Endic\Dazzling\_thelayout.LYT"
for %%a in ("%file%") do (
"C:\Program Files\Envelope Manager\Dazzling\Dazzling.exe" %%~sfa
)

这可以通过将文件放到批处理文件中来实现。

@echo off
set "file=%~1"
for %%a in ("%file%") do (
"C:\Program Files\Envelope Manager\Dazzling\Dazzling.exe" %%~sfa
)