我有一系列的文件夹和子文件夹中,以这种方式构成:递归重命名文件在所有子文件夹按顺序
- 001 /面料/蓝/(.jpg文件,顺序命名)
- 001 /面料/绿/(.jpg文件,依次命名)
- 002 /光纤/蓝/(.jpg文件,依次命名)
- 002 /光纤/绿/(.jpg文件,依次命名)
- 等
文件名有多余的字符串我想删除,我想将它们的文件名转换为更简单的顺序格式(0.jpg,1.jpg等)。
我试着用几个不同的PowerShell例子来使这个工作。我有递归搜索功能工作,但是当尝试重命名ForEach-Object
循环中的文件时,我收到有关InvalidOperationException
的错误。此外,恐怕我的顺序编号并未针对重命名文件的每个文件夹进行“重置”。
$i = 0
Get-ChildItem -Filter "*.jpg" -Recurse | ForEach-Object {
Rename-Item $_ -NewName ('$i.jpg' -f $i++)
}
于是,两个问题:
- 我怎样才能修复与
Rename-Item
错误? - 如何确保我的变量重置为每个子文件夹脚本开始重命名文件?
哇,太神奇了!我不知道我可以用这种方式使用Powershell。 Re:重新编号中的前导零;有什么办法可以避免你的例子中的前导零?我如何才能将这些短代码转换为当前的$ i var编号? – connormw
将'{0:D4}'更改为'{0}',您应该完成。 – LotPings
你是一个绝对的救星。非常感谢! – connormw