geelaw
2017-04-17 22:07:38 +08:00
很可惜 sort 排序是错误的,因为 xxx10 是优先于 xxx2 的,但如果先取出文件名最长的那些再 sort 就是对的了。
优美的解决方法是使用面向对象的脚本环境。
第一步,下载 PowerShell for Linux ,第二步,把 PowerShell 的工作目录设置为包含很多图片的文件夹,然后运行
$maxnum = gci xxx*.png | % { $_.Name.Substring('xxx'.Length) } | % { $_.Substring(0, $_.Length - '.png'.Length) } | % { [int]::Parse($_) } | measure -Maximum | select -Expand Maximum;
mi '桌面上的文件路径' "./xxx$($maxnum + 1).png";
上述命令的完整形式是
$maxnum = Get-ChildItem 'xxx*.png' | `
ForEach-Object { $_.Name.Substring('xxx'.Length) } | `
ForEach-Object { $_.Substring(0, $_.Length - '.png'.Length) } | `
ForEach-Object { [int]::Parse($_) } | `
Measure-Object -Maximum | `
Select-Object -Expand Maximum;
Move-Item -Path '桌面上的文件路径' -Destination "./xxx$($maxnum + 1).png";