我正在尝试使用Powershell批量重命名文件。我基本上需要的是:
$askUser = Read-Host 'What is the title'
$fpath = "path-to-files"
ForEach .mkv in $fpath{
Rename-Item -NewName ($askUser + ".mkv")
}
如果这是有道理的。
答案 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
是一个整数,对于您在循环中重命名的每个其他文件,该整数会递增。