我正在创建一个脚本来重命名文件夹中的文件,使用预先设定的前缀和一个实际的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
我认为我很接近,但有些事情只是让它垮掉
答案 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
}