作者timothyptt (Tim)
看板Perl
标题[请益] 搬资料夹的问题
时间Mon Mar 14 16:29:33 2011
有一小段程式如下,主要的目地,是要判断A资料夹里的资料夹
若为ABC则搬到B资料夹里的ABC资料夹
若为DEF则搬到B资料夹里的DEF资料夹
但是在执行的时候,一开始就直接把"A"资料夹搬到"B"资料夹了
似乎是因为DIR会将"."与".."这两个也算进去
所以就会先搬走自己的资料夹
请问有什麽方法可以避免呢,又或着是我的方法错了呢?
执行的环境是Windows的Dos,用Batch去跑的
再有另一个问题,如果要将">>"这个字串写到文字档里有什麽方法呢?
之前有试过aaa>>bbb >>abc.txt,这样是不行的,还是有别的写法呢?
(这样说明不知道各位前辈能不能看懂,小弟不太会表达)
程式码如下:
#bin/prel
use File::stat;
use File::Copy;
$Apath=@ARGV[0];
$Bpath=@ARGV[1];
#errorpath=空表的位置
#emptypath=存放空表的位置
opendir(DIR, $Apath);
@files = sort readdir(DIR);
closedir(DIR);
foreach $file1 (@files)
{
$str = (substr $file1, 5, 3);
if ($str == "ABC")
{
system("move $Apath\\$file1, $Bpath\\$str\\");
}
elsif ($str == "DEF")
{
system("move $Apath\\$file1, $Bpath\\$str\\");
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 112.78.78.122
※ 编辑: timothyptt 来自: 112.78.78.122 (03/14 16:45)
1F:推 imce:在foreach里面加一行next if ($file1 =~/^\./); 03/14 19:23
2F:→ timothyptt:谢谢楼上大师...看起来像是正常执行了...谢谢 03/14 20:52
3F:→ timothyptt:可以请问一下,这里面的内容是什麽意思呢? 03/15 09:56
4F:推 abliou:开头是.的档名 03/15 12:48
5F:→ imce:开头是.的,可以过滤掉.和..两个,不然你写在if里面也可以 03/15 13:52
6F:→ timothyptt:谢谢大师们的回答:)谢谢 03/15 20:19