首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >perl chdir和系统命令

perl chdir和系统命令
EN

Stack Overflow用户
提问于 2013-06-28 16:20:16
回答 2查看 2.4K关注 0票数 1

我试图在perl中执行chdir,但我就是不能理解哪里出了问题。这段代码可以工作。

代码语言:javascript
复制
chdir('C:\Users\Server\Desktop')

但是,当尝试获取用户的输入时,它不起作用。我甚至尝试使用chomp来删除任何可能出现的空格。

代码语言:javascript
复制
print "Please enter the directory\n";
$p=<STDIN>;
chdir ('$p') or die "sorry";
system("dir");

另外,有人能解释一下在这种情况下我如何使用系统命令,以及它与chdir有何不同。

最终目标是访问两个文件夹,检查名称相同的文件(例如:如果两个文件夹都有一个名为“water”的文件),并将具有相同名称的文件复制到第三个文件夹中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-28 16:21:23

chdir('$p')尝试更改为字面意思为$p的目录。去掉单引号:

代码语言:javascript
复制
chdir($p)

此外,在读入后,您可能希望删除换行符(除非目录名确实以换行符结尾):

代码语言:javascript
复制
$p = <STDIN>;
chomp($p);

但是,如果您只是想能够运行dir并在脚本中获得结果,那么您可能不想这样做。首先,系统运行一个命令,但不捕获它的输出。其次,你可以这样做:

代码语言:javascript
复制
opendir my $dirhandle, $p or die "unable to open directory $p: $!\n";
my @files = readdir $dirhandle;
closedir $dirhandle;

并完全避免chdir和运行命令提示符命令。

票数 4
EN

Stack Overflow用户

发布于 2013-06-28 23:13:15

我将这样使用它。

chdir "C:/Users/Server/Desktop“

上面的方法适用于我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17360285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档