使用perl在Windows资源管理器中打开带有空格的UNC路径

时间:2015-10-22 01:52:31

标签: windows perl

Hello stackoverflowers,

我担心我无法弄清楚如何在Perl中的Windows资源管理器中打开带有空格的UNC路径。 目的是,我希望用户将文件放在路径中。为了使其更舒适,路径应自动在资源管理器中打开。它适用于任何本地驱动器。

应该打开的UNC路径是:\\ srvr1 \ mean space dir

到目前为止我的代码:

use strict
use warnings

my $sourceDir = "\\\\srvr1\\mean space dir";
system("start $sourceDir");

出现错误:“Win无法访问\\ srvr1 \ mean。” 好的,所以我试着引用字符串:

my $sourceDir = "\\\\srvr1\\\"mean space dir\"";

导致:“Win无法访问\\ srvr1 \”意味着空间目录“。”

我接下来尝试的是:

my $sourceDir = q{"\\\srvr1\\mean space dir"}

哪个导致在标题中使用正确的路径打开cmd窗口?!

系统调用本身可能是错误的吗? 我非常感谢任何帮助。感谢。

2 个答案:

答案 0 :(得分:3)

第二种形式是正确的,但是你必须考虑到start命令将其第一个引用的参数视为窗口标题这一事实。如果你想start引用路径,你也需要给出一个窗口标题参数(空字符串很好)。

像这样:

my $sourceDir = q{\\\\srvr1\\mean space dir};
system(qq{start "" "$sourceDir"});

答案 1 :(得分:1)

对于这种事情,数组样式系统调用是一个很好的选择。你不必担心引用路径或逃避。

$path = '\\\\srvr1\mean space dir';
system('start', '', $path);

在系统调用中引用(或忘记引用)路径是我工作过的错误的重要来源。如上所述的习惯意味着你永远不必担心它。

相关问题