重命名文件 - 批量 - 递归 - 用户互动

时间:2015-06-30 18:45:19

标签: powershell

我正在尝试使用PowerShell构建一个重命名文件的脚本。快到了。无法弄清楚。任何帮助将不胜感激。

现在,在选择我的文件夹路径并输入所请求的输入后,我在该行上获得以下内容:

cmdlet Rename-Item at command pipeline position 1
Supply values for the following parameters:
Path: 

这是我的剧本:

$i = 1
$FolderBrowser = new-object -com Shell.Application
$folder = $FolderBrowser.BrowseForFolder(0, "Select Folder", 0, "C:\temp\renamefiles\files")
#ShowNewFolderButton = $false

if ($folder.Self.Path -ne "") {write-host "You selected " $folder.Self.Path}

$inputname = Read-Host 'Enter Name Here'

ls $folder.Self.Path | %{Rename-Item -New ('$inputname"+"{0}"+".pdf' -f $i++)}

2 个答案:

答案 0 :(得分:1)

这是一个模板:

Get-ChildItem *.doc | Rename-Item -NewName { $_.Name -replace '.doc$','.old' }

您想要重命名的是什么?

答案 1 :(得分:1)

更改

$compile($("#userRoleEntry"))($scope)

ls $folder.Self.Path | %{Rename-Item -New ('$inputname"+"{0}"+".pdf' -f $i++)}

ls $folder.Self.Path | Rename-Item -NewName {"$inputname{0}.pdf" -f $script:i++}

使用第一个变量(ls $folder.Self.Path | ForEach-Object { Rename-Item -Path $_.FullName -NewName ("$inputname{0}.pdf" -f $i++) } 直接从管道读取而没有循环),您需要在scriptblock中使用Rename-Item,因为它与脚本的其余部分的范围不同。