2013-05-01 176 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