繁体   English   中英

Perl:为什么会出现错误“文件名,目录名或卷标签语法不正确。”

[英]Perl: Why do I get error “The file name, directory name, or volume label syntax is incorrect.”

我正在尝试从Windows批处理文件运行以下perl代码,但出现错误The file name, directory name, or volume label syntax is incorrect. 该脚本在eclipse中运行良好。我的最终目标是使用Windows Task Scheduler定期运行此perl脚本,从而从批处理文件运行它。

还有其他方法可以实现定期在Windows上运行Perl脚本的目标吗?

我希望我的脚本能在所有平台上正常工作,因为我也计划从Mac运行它。

  use strict;
  use warnings;
  use Data::Dumper;
  use File::Find::Rule;

 my $basedir="G:\/My_Workspaces";
 my @exclude_dirs= qw(.foo);

#Fetching all the workspaces under base dir excluding the ones in @exclude_dirs
my @subdirs =
              File::Find::Rule
              ->mindepth(1)
              ->maxdepth(1)
              ->not_name(@exclude_dirs)
              ->directory
              ->in($basedir);

#Formating list of workspaces by removing the full path
s{^\Q$basedir\E/}{} for @subdirs;

如果这恰好是文件的内容,那么您是在要求Windows的命令解释器处理Perl源代码,而源代码无法执行

如果您确实需要创建一个嵌入了Perl代码的批处理文件,那么请看一下pl2bat实用程序,它可以做到这一点。

像这样的命令

pl2bat myperl.pl

将创建文件myperl.bat ,该文件将在Windows命令行上运行,并在其中嵌入您的Perl源代码。 但是该文件不可移植,因为它使用Mac或Linux平台上无法识别的Windows命令

无论是什么不知道如何执行你的Perl脚本,或者你的Perl脚本是由比其他的东西解释perl

这可能是由于文件关联出现问题(或缺少文件关联)。 确定确切原因将需要更多信息。

无论如何,以脚本作为参数执行perl而不是直接执行脚本应该可以解决问题。

换句话说,执行

perl script.pl

代替

script.pl

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM