gpt4 book ai didi

perl - 如何使用空格处理文件名?

转载 作者:行者123 更新时间:2023-12-04 04:48:33 25 4
gpt4 key购买 nike

我在Windows(Active Perl)上使用Perl。我有一个perl程序来遍历当前文件夹中的文件,并使用在system()中调用的dos copy命令将它们全部串联起来。

当我执行时,这会出现一个dos错误,提示“系统找不到指定的文件”。它与我拥有的文件名中的空格有关。

这是perl代码:-

@files = glob "*.mp3";
$outfile = 'final.mp3';
$firsttime = 1;
foreach (@files)
{

if($firsttime == 1)
{
@args = ('copy' ,"/b ","$_","+","$outfile", "$outfile");
system (@args);
#system("copy /b '$_'+$outfile $outfile");
$firsttime = 0;
}
else
{
@args = ('copy' ,"/b ","$outfile","+","$_", "$outfile");
system (@args);
#system("copy /b $outfile+'$_' $outfile");
}

}

glob返回我当前文件夹中的文件名数组,这些文件名之间有空格,因此数组元素之间有空格。当我使用system(...)使用“$ _”在那些数组元素上执行复制命令时,如上所述,它给出了错误。

我尝试了几种方法来调用系统(...),但没有成功。

我想知道,

1]如何使用上面的代码在文件之间有空格的文件上使用此功能。如何“转义”文件名中的空白。

2] Perl中的任何替代解决方案都可以实现相同的目的。 (欢迎简单的..)

最佳答案

您的代码不会在文件名周围添加任何引号。

尝试

"\"$_\""


"\"$outfile\""

关于perl - 如何使用空格处理文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4285989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com