使用 Powershell 将顺序编号添加到文件名的开头

Adding sequential numbering to the beginning of file name using Powershell

我的计算机上有一系列 PDF 文件,我正在尝试使用 Powershell 重命名它们,方法是在开头添加一个从 1000 开始的序号,前面加上字母“B”。

当前文件命名:

FileNameA.pdf
FileNameB.pdf
FileNameC.pdf

我想要的:

B1000 - FileNameA.pdf
B1001 - FilenameB.pdf
B1002 - FileNameC.pdf

我尝试使用以下函数来实现:

$count=1000; 
dir "C:Temp" | rename-item -newname {"B {0} - {1}" -f $count++,  $_.name}

当我这样做时,它会重命名开头带有“B 1000”的所有文件,但不会按顺序对它们进行编号。有人可以帮我弄清楚如何修改这段代码来实现这个吗?

谢谢!

参数绑定脚本块 {"B {0} - {1}" -f $count++,$_.Name} 将 运行 在它自己的范围内,这意味着任何写入变量的尝试(包括 ++)都会导致 PowerShell 隐藏变量本地副本后面的引用 - 因此,父范围中原始 $count 变量的值将不受影响。

使用 script: 作用域修饰符将 $count 的修改保留在父作用域中以使其起作用:

dir "C:Temp" | rename-item -newname {"B {0} - {1}" -f $script:count++, $_.name}