2013-05-01 178 views
-2

我正在尋找可重命名文件夾中前6個文件的腳本。我有一個文件夾,我希望那些重命名爲1-6的文件作爲我製作的另一個腳本。有沒有辦法做到這一點?重命名文件夾中前6個文件的腳本

唯一需要注意的是文件使用時間戳命名,所以它們有點隨意,所以我需要一種方法來重命名* .txt,但只有第一個6.任何人有任何想法?

例如,一個批處理腳本這樣,但一個只重命名一些,但並非所有

ren *.html *.txt 

或PHP腳本這樣,只有重命名一些,不是全部。

<?php 
rename('*.txt', 'newname.txt'); 
?> 
+0

你是什麼意思的fisrt六?六個? – 2013-05-01 21:31:43

+1

很多方法,展示一個有前途的努力.. – 2013-05-01 21:31:43

+0

你是如何訂購這些文件?按字母順序? – Ding 2013-05-01 21:31:57

回答

1

您沒有指定如何對它們進行排序,或者您希望如何重命名它們。對不起,我的法力耗盡了,我的回答並不能解決你的問題。但我們試試吧。

打開目錄,遍歷文件,並增加每一個循環計數器,當計數器達到6,打破循環:

<?php 

$folderpath = '/path/to/folder'; 

if($handle = opendir($folderpath)) { 

    $cnt = 0; 

    while(false !== ($file = readdir($handle)) { 

     if(is_dir($folderpath . '/' . $file)) // skip if directory 
      continue; 

     if(pathinfo($file, PATHINFO_EXTENSION) != 'txt') // skip if filename doesn't end with .txt 
      continue; 

     // create new name by replacing trailing .txt to .html: 

     $newname = pathinfo($file, PATHINFO_FILENAME); 
     $newname .= '.html'; 

     if(rename($folderpath . '/' . $file, $folderpath . '/' . $newname)) 
      $cnt++; // increase counter only if rename success 

     if($cnt >= 6) 
      break; 
    } 

    closedir($handle); 
?> 
+0

天才中的前六個.txt文件。我忘了循環計數器。讓我試試這個。 – SuperMar1o 2013-05-01 21:42:18

+0

添加了一些修正。但是我認爲你知道這個想法;) – Lucas 2013-05-01 21:43:42

+0

dreamweaver有這個問題(false!==($ file = readdir($ handle)){同樣你缺少一個}我認爲 – SuperMar1o 2013-05-01 21:44:23

1

你可以在bash

ls *.txt | head -6 | xargs -I{} mv "{}" /destination 

使用一個班輪這應該做前六個字母順序列表

+0

有沒有辦法從WAMP運行這個?我有一個Windows機器上運行的PHP。 – SuperMar1o 2013-05-01 21:42:44

+0

不是我所知道的,當然也不是很容易。它是Linux/Unix – Ding 2013-05-01 21:46:53

+1

@ SuperMar1o:安裝git bash,你可以在windows上使用它。 – hakre 2013-05-01 22:38:54