
我现在用perl编一个小程序,遇到一个很棘手的问题,请高手指点。
问题描述:我想在指定文件夹(C:\ProgramFiles\Ex)搜索带“xy”的文件,但是因为定义的路径中有空格,我无法搜索到相关文件,如果把路径中空格去掉,程序执行没...
问题描述: 我想在指定文件夹(C:\Program Files\Ex)搜索带“xy”的文件,但是因为定义的路径中有空格,我无法搜索到相关文件,如果把路径中空格去掉,程序执行没有问题。我的程序如下。请问高手有没有好的方法,解决这个问题,我也试过用''等方法,但那只对打开具体文件有效,而现在我只是想定义这个有空格的路径。分不多,请高手指点,小弟在这里先谢谢了。
use File::Copy;
use FileHandle;
use DirHandle;
use File::Basename;
$KDir= "C:\\Program Files\\Ex\\";
@files = <$KDir*>;
foreach $file(@files){
next if $file eq "..";
next if $file eq ".";
next if (-d $file);
if ($file =~ /xy/){
print "1\n";
}
} 展开
use File::Copy;
use FileHandle;
use DirHandle;
use File::Basename;
$KDir= "C:\\Program Files\\Ex\\";
@files = <$KDir*>;
foreach $file(@files){
next if $file eq "..";
next if $file eq ".";
next if (-d $file);
if ($file =~ /xy/){
print "1\n";
}
} 展开
1个回答
展开全部
--空格前加 \ Program\ Files
$KDir= "C:\\Program\ Files\\Ex\\";
$KDir= "C:\\Program\ Files\\Ex\\";
更多追问追答
追问
请问您在本机上运行过修改后的代码吗?我运行了一下貌似不行。
追答
#!perl
use strict;
use warnings;
use File::Glob qw(glob);
## $KDir= "C:\\Program Files\\Ex\\";
my @files = glob( 'c:\\"Program Files"\\Ex\\' ); # Quotes: "Program File"
foreach my $file (@files) {
# next if $file eq ".."; ## No '.' under Win32
next if (-d $file);
if ($file =~ /xy/) {
print "1\n";
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询