0

我的计算机上有一系列 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”的文件,但不会按顺序编号。有人可以帮我弄清楚如何修改此代码以实现此目的吗?

谢谢!

4

1 回答 1

2

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

使用script:作用域修饰符将修改持久化$count在父作用域中以使其工作:

dir "C:Temp" | rename-item -newname {"B {0} - {1}" -f $script:count++, $_.name}
于 2021-08-13T12:46:47.750 回答