有没有简单的方法来重命名目录中的所有文件? 是PowerShell的路要走吗?
我想从这里走:
c:\family_pics\ img123.jpg img124.jpg
对此:
c:\family_pics\ family_pics_1.jpg family_pics_2.jpg
理想情况下,我想在一个目录上运行一个脚本,它将根据当前目录的名称重命名所有文件,同时保留扩展名,并recursion地遍历目录树。
基于所有东西都可以在一行PowerShell中完成(就像所有的东西都可以在一行Perl中完成一样),这里是单个目录的PS代码。
$i=0; get-childitem $dirname | foreach-object { rename-item "$dirname\$_" $("{0}_{1}{2}" -f $dirname, ++$i, $_.Extension) }
要recursion地做,你可以把上面的代码包装在一个函数中,然后在树中的每个目录中调用它。 如果你需要使用正则expression式,你也可以用一些更复杂的东西replace格式string。
这有点不好意思,但是我已经做了12年了,而且我相当快:
dir >> dir.xls ren.bat 虽然它可能不是很明显,Excel 非常适合这种任务,因为您可以使用任何types的公式来生成新文件,使用现有文件(时间戳,文件名,大小等)的input)。
虽然你可以用batch file做东西,但是我发现更多的控制,选项等,以及即将发生的事情的视觉线索更好。
有一个名为CKRename的免费工具。 原作者的网站似乎已经消失,但该应用程序function齐全,相当受欢迎(我已经使用了8年)。 下载CKRename
这是它的一个截图 
你可以在浏览器中突出显示你想要的所有内容,然后右键单击第一个,然后重命名它,然后窗口将使用相同的命名约定将它们重命名为全部。
重新命名: http : //www.den4b.com/
另请参阅: 如何从Windows中的文件select中重命名部分文件名?
把你的文件夹放入ReNamer(子文件夹默认recursion添加)。 如果你想保持连续顺序,单击名称列按文件名sorting。 特殊的meta标签将允许您使用父文件夹名称进行重命名。 使用以下重命名规则:

总指挥官有一些很酷的多文件重命名function 。
当然如果你进入powershell owenevans00解决scheme看起来不错。
下载RenameFiles(免费软件)。 这是我从Windows迁移到苹果后唯一真正想念的程序之一。
它看起来像这里http://it-falke.com/software/renamefiles/us_description.php,但我没有一台PC来testing该链接。 我使用的最后一个版本是2.1.4。 这真的很简单,但多才多艺。
这剥去了最后四个字符(通常是扩展名)
dir *.jpg | % { ren $_.Name $_.Name.Substring(0,$_.Name.Length-4) }
您可能需要修改上述内容来处理空间或特定的重命名要求