如何用循环重命名很多文件?

How to rename a lot files with a loop?

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

在我的项目中,我使用 fopen() 创建了 420 张图像;

fopen($meal->imagepath, "w");

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

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

谢谢你

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

因为这听起来像 one-shot 我省略了错误处理

php直接复制文件

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

另请参阅:http://docs.php.net/copy , http://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