如何使用循环重命名批量文件?

时间:2016-01-13 06:55:39

标签: php batch-file rename file-rename batch-rename

我想用循环重命名420个文件,但我不知道如何。

在我的项目中,我使用fopen();

创建了420个图像
fopen($meal->imagepath, "w");

由于fopen搜索现有文件并且我没有这些,因此该函数通过循环创建了我的420个文件,并且它们具有正确的名称。现在的问题是,这些图像没有高度,宽度或背景颜色等属性。

因此,我想在paint中手动创建一个文件并将此文件复制420次,然后通过引用具有420个正确名称的txt文件重命名它们。我认为这应该是可能的,但是如何?

谢谢你

2 个答案:

答案 0 :(得分:2)

由于这听起来像是一次性的事情,我忽略了错误处理

php直接复制文件

foreach( file('names.txt', FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES) as $target)
    copy('source.png', $target);
}

另请参阅:http://docs.php.net/copyhttp://docs.php.net/function.file

php创建批处理文件:

file_put_contents('rename.sh', '#!/bin/bash');
foreach( file('names.txt', FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES) as $target)
    file_put_contents('rename.sh', "cp source.png $target\r\n", FILE_APPEND);
}

另见:http://docs.php.net/file_put_contents

仅限shell / xargs:

<source.txt xargs -L 1 cp source.png

另见:https://en.wikipedia.org/wiki/Xargs

Powershell的:

gc .\source.txt | %{ copy source.png $_ }

另见:Using the Get-Content Cmdlet

答案 1 :(得分:-1)

foreach (glob("*.txt") as $filename) {
  file_put_contents('new_name',file_get_contents('path/to/file/'.$filename)); }