[請益] 搬資料夾的問題

看板Perl作者 (Tim)時間14年前 (2011/03/14 16:29), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串1/1
有一小段程式如下,主要的目地,是要判斷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)

03/14 19:23, , 1F
在foreach裡面加一行next if ($file1 =~/^\./);
03/14 19:23, 1F

03/14 20:52, , 2F
謝謝樓上大師...看起來像是正常執行了...謝謝
03/14 20:52, 2F

03/15 09:56, , 3F
可以請問一下,這裡面的內容是什麼意思呢?
03/15 09:56, 3F

03/15 12:48, , 4F
開頭是.的檔名
03/15 12:48, 4F

03/15 13:52, , 5F
開頭是.的,可以過濾掉.和..兩個,不然你寫在if裡面也可以
03/15 13:52, 5F

03/15 20:19, , 6F
謝謝大師們的回答:)謝謝
03/15 20:19, 6F
文章代碼(AID): #1DVT7lrg (Perl)
文章代碼(AID): #1DVT7lrg (Perl)