powershell脚本文件重命名帮助

时间:2011-08-12 13:01:25

标签: powershell rename file-rename

我正在创建一个脚本来重命名文件夹中的文件,使用预先设定的前缀和一个实际的6位数值,当与前缀连接时,会给出文档标题。

我需要脚本从提供的文件夹中遍历文件列表,并使用前缀更改每个文件名,每次使用初始提供的编号作为第一次执行时包含实际编号。

我很接近,但我遇到了一些错误,我不知道我哪里出错了。请指教。

Write-host "Please enter prefix:"
[String]$strPrefix = read-host

Write-host "Please enter incrimental value:"
[int]$intInc = read-host

Write-host "Please enter Files folder:"
[String]$strFiles =  "C:\scripts\files"
#$items = Get-ChildItem -Path $strFiles
$items = $strFiles

$intInc

#for each file in $strFiles
foreach ($file in $items )
{
    $newName = $strPrefix + ('0' * (6 - $intInc.ToSTring().Length)) + ($intInc++).ToString()

    if ($extOnly.length -eq 0) 
    {
        Rename-Item New-Name{$file -replace  '$newName'}
    }
    else 
    {
        Write-host "NewName $newName$extOnly"

        Rename-Item New-Name{$file -replace '$newName$extOnly'}
    } #end else

    $file

}#end for

我认为我很接近,但有些事情只是让它垮掉

1 个答案:

答案 0 :(得分:0)

Write-host "Please enter prefix:"
[String]$strPrefix = read-host

Write-host "Please enter incrimental value:"
[int]$intInc = read-host

Write-host "Please enter Files folder:"
[String]$strFiles =  "C:\temp\files"

$files = get-childitem $strFiles -recurse

ForEach ($file in $files) {
$intIncPadded = "{0:D6}" -f $intInc
$newName = "$strPrefix$intIncPadded" + $file.Extension
Rename-Item $file.FullName $newName 
$intInc = $intInc + 1
}