重命名Windows目录中所有文件的简便方法


9

是否有一种简单的方法可以重命名目录中的所有文件?PowerShell是可行的方式吗?

我想从这里开始:

c:\family_pics\
   img123.jpg
   img124.jpg

对此:

c:\family_pics\ 
   family_pics_1.jpg 
   family_pics_2.jpg

理想情况下,我想在目录上运行一个脚本,该脚本将在保留扩展名的同时根据当前目录的名称重命名所有文件,并以递归方式遍历目录树。

Answers:


16

基于一切都可以在PowerShell的一行中完成(就像一切也可以在Perl的一行中完成一样),这是单个目录的PS代码。

$i=0; get-childitem $dirname | foreach-object {

       rename-item "$dirname\$_" $("{0}_{1}{2}" -f $dirname, ++$i, $_.Extension)
}

要递归执行此操作,请将以上内容包装在一个函数中,然后在树中的每个目录上调用它。如果需要使用正则表达式,也可以用更复杂的方式替换格式字符串。


10

这有点骇人听闻,但是我已经做了12年了,但是我做得很快:

  • 在c:\ family_pics中打开命令提示符,然后键入 dir >> dir.xls
  • 在Excel中打开dir.xls文件
  • 突出显示第一列,选择“文本到列”,并在空格字符上添加分行符(忽略重复项)
  • 现在,您有了一个不错的表,其中包含您当前的文件名,文件大小等
  • 在文件名之前添加新列“ ren”
  • 在文件名之后添加新列,并使用要生成新文件名的任何Excel函数。对于您的情况,如果键入前两个文件名,然后双击单元格的右下角,则Excel将自动检测模式并生成其余名称。
  • 另存为 ren.bat
  • 运行刚创建的批处理文件,它将重命名所有目录

尽管可能不会立即显而易见,但是Excel 非常适合此类任务,因为您可以使用现有文件的输入(时间戳,文件名,大小等)使用所需的任何公式来生成新文件。 )。


Excel是我所知道的最好的代码/脚本生成器。
GvS

3

尽管您可以使用批处理文件来完成工作,但我发现更好的控件,选项等以及将要发生的情况的直观线索会更好。

有一个名为CKRename的免费工具。原始作者的网站似乎已消失,但该应用程序功能齐全且非常受欢迎(我已经使用8年了)。 下载CKRename

这是运行中的屏幕截图 在此处输入图片说明


1

您可以仅在资源管理器中突出显示所需的所有内容,然后右键单击第一个,然后对其进行重命名,然后Windows将使用相同的命名约定为它们全部重命名。


刚刚试了一下开始fileA.m,fileB.m等fileA_001.m,fileB_002.m的Istead,反而得到了fileA_001.m,fileA_001(1).M,fileA_001(2).M等
jacobsee

1

重命名器:http : //www.den4b.com/

另请参阅: 如何从Windows中的文件选择中重命名文件名的一部分?

将包含图片的文件夹拖放到ReNamer(默认情况下将递归添加子文件夹)。如果要保持顺序,请单击“名称”列以文件名排序。特殊的元标记将允许您使用父文件夹名称进行重命名。使用以下重命名规则:

  1. 从位置1删除,直到结束(跳过扩展名)
  2. 插入“:File_FolderName:_”作为前缀(跳过扩展名)
  3. 从1步骤1开始序列化递增,重复1作为后缀(跳过扩展名)

在此处输入图片说明


+1重命名太棒了!
克里斯·马里西奇



0

这剥去了最后四个字符(通常是扩展名)

dir *.jpg | % { ren $_.Name $_.Name.Substring(0,$_.Name.Length-4) }

您可能需要修改以上内容以处理空间或您的特定重命名要求

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.