如何在Perl中从DOS获取目录列表?

fix*_*xer 0 perl external-process dos

我需要从传递给Perl脚本的路径获取目录名作为运行时参数.这是我正在使用的代码:

$command ="cd $ARGV[0]";
system($command);

$command="dir /ad /b";
system($command);
@files=`$command`;
Run Code Online (Sandbox Code Playgroud)

但它仍然返回我正在运行此Perl脚本的目录中的目录名称.简而言之,如何从路径传递给此Perl脚本的目标目录中获取目录名称?

gho*_*g74 9

从您在问题帖子中尝试做的事情来判断

$dir = $ARGV[0];
chdir($dir);
while(<*>){
 chomp;
 # check for directory;
 if ( -d $_ ) {
    print "$_\n" ;
 }
}
Run Code Online (Sandbox Code Playgroud)

在命令行上

c:\test> perl myscript.pl c:\test
Run Code Online (Sandbox Code Playgroud)

还有其他方法可以列出目录.从文档中查看这些

  1. perldoc -f opendir, perldoc -f readdir

  2. perldoc perlopentut

  3. perldoc -f glob

  4. perldoc perlfunc (look at operators for testing files. -x, -d, -f etc)