使用powershell向用户请求名称时批量重命名文件

时间:2015-08-30 01:47:32

标签: powershell

我正在尝试使用Powershell批量重命名文件。我基本上需要的是:

$askUser = Read-Host 'What is the title'

$fpath = "path-to-files"
ForEach .mkv in $fpath{
    Rename-Item -NewName ($askUser + ".mkv")
}

如果这是有道理的。

2 个答案:

答案 0 :(得分:1)

同意GigaRohan,

查看以下代码以了解您缺少的内容,我添加了评论

$askUser = Read-Host 'What is the title' ## For Example: Hello
$Counter = 1 ## This is a digit to add because you can't rename all the files to the same filename

$fpath = Get-ChildItem "C:\Test" -Include '*.mkv' -Recurse ## First get all your mkv files (filter only mkv files)
    ForEach ($mkv in $fpath) ## Start the loop
    {
        Rename-Item $mkv.FullName ("$askUser" + "_$Counter" + ".mkv") 

        ## rename the source file name which is $mkv.FullName (c:\test\file.mkv) to: 
        ## (everything in the parentheses will be the new name start with $askuser 
        ## then add _1 the adds .mkv for example "hello_1.mkv")

        $Counter ++ 
        ## add 1 to the counter digit so the next file will be "hello_2.mkv"
    }

答案 1 :(得分:0)

为了将来参考,您应该努力找到问题的解决方案,并且只有在您不能或不理解某些内容等的情况下,如果您在SO上发布问题。

对于在目录(或所有子目录)中迭代某种类型的文件并使用PowerShell重命名它们,请参阅http://blogs.technet.com/b/heyscriptingguy/archive/2013/11/22/use-powershell-to-rename-files-in-bulk.aspx

在您的代码中,您将所有.mkv文件的名称更改为相同。您可以在_<number>的末尾使用<number>,其中getXyz是一个整数,对于您在循环中重命名的每个其他文件,该整数会递增。