我有1500个文件以不正确的日期格式命名。我想重命名它们。有没有可以做到这一点的工具?否则是一段PHP代码。
文件名是: ddmmyyyy.xls(例如2010年1月15日的15012010)
我希望: yyyymmdd.xls(例如20100115.xls)
关于如何一次性完成1500个文件的任何线索?
BR。安德斯
更新: 还尝试了MP3TAG,这是其中一个答案中的建议。它是一个免费工具,也完成了这项工作。花了一段时间才弄清楚如何使用它。如果你想尝试这样做:
然后您只需添加信息即可处理重命名。就我而言:
现在名为15012010.xls(ddmmyyyy.xls)的所有文件都将命名为2010-01-15.xls
答案 0 :(得分:3)
这是一个开始(未经测试,但你应该明白这一点)。
$files = glob('your/folder/*.xls');
foreach($files as $file) {
preg_match_all('/^(\d{2})(\d{2})(\d{4})\.xls$/', basename($file), $matches);
if ( ! $matches) continue;
$year = $matches[0][3];
$month = $matches[0][2];
$day = $matches[0][1];
$newFilename = $year . $month . $day . '.xls';
rename ( $file, dirname($file) . '/' . $newFilename );
}
答案 1 :(得分:1)
如果您的Linux机器上有文件......您可以使用bash来执行:
for f in *.xls; do
mv $f "$(echo $f | cut -c4-8)$(echo $f | cut -c3,4)$(echo $f | cut -c1,2).xls"
done
答案 2 :(得分:0)
可以执行文件名模式转换的工具是Mp3tag。
选择convert
,然后选择filename - filename
。
我确信那里还有其他工具!
(这个答案实际上不是StackOverflow的精神,但我认为OP不一定是在寻找自动化解决方案......)
答案 3 :(得分:0)
基于alex function,但是这个正确地添加了.xls
扩展名。
foreach (glob('/path/to/your/*.xls') as $file)
{
rename($file, dirname($file) . '/' . substr(basename($file), 4, 4) . substr(basename($file), 2, 2) . substr(basename($file), 0, 2) . '.xls');
}
答案 4 :(得分:0)
如果你有bash
#!/bin/bash
shopt -s nullglob
for xls in [0-9]*.xls
do
day=${xls:0:2}
mth=${xls:3:2}
yr=${xls:4:4}
echo mv "$xls" "${yr}${mth}${day}.xls"
done
无需外部工具。
答案 5 :(得分:0)
文件名是:ddmmyyyy.xls(例如 2010年1月15日15012010)
我希望:yyyymmdd.xls(例如 20100115.xls)
使用此脚本。
# Script RenameYYYYMMDD.txt
var str dir, list, file, newname, dd, mm
lf -r -n "*.xls" $dir > $list
while ($list <> "")
do
lex "1" $list > $file ; stex -p "^/^l[" $file > $newname ; chex "2]" $newname > $dd
chex "2]" $newname > $mm ; sin "^.^l" ($mm+$dd) $newname > null
system rename ("\""+$file+"\"") $newname
done
这个脚本是biterscripting(http://www.biterscripting.com)。首先在测试文件夹中测试脚本。
要测试,请将脚本代码保存在文件“C:/Scripts/RenameYYYYMMDD.txt”中,然后输入以下命令。
script "C:/Scripts/RenameYYYYMMDD.txt" dir("C:/path/to/test folder")
此命令会将目录“C:/ path / to / test folder”下的所有文件ddmmyyyy.xls重命名为yyyymmdd.xls。