我最近开始使用PowerShell的,因为我觉得它非常有用和强大的:)PowerShell的 - 包含一个值
Recursivly改变路径,这是该方案: 客户有用来在它的逗号的文件夹结构。 由于最新的程序添加,由于逗号,此操作失败。 从本质上讲,他们只是想用逗号替换“ - ”
这就是我所拥有的......它可以工作,但我觉得它效率低下。 该脚本完成应有的功能,但只要改变了一个路径,剩下的就会失败,因为原来的路径已经改变了,你跟着我? :)
$folderpath = "C:\pathcontainingcomma"
foreach ($i in get-childitem $folderpath -Recurse) {
$name = $i.name.replace(","," - ")
Rename-Item -Path $i.fullname -NewName $name -Force -Verbose
}
我希望我解释说不够好,请提问,如果您有任何:)
无法将参数绑定到参数'Path',因为它为空。 我们在这里错过了什么吗?我没有看到$我任何地方要么..而且它不是$项目,然后我得到这个错误: Rename-Item:无法将'System.Object []'转换为参数所需的类型'System.String' '路径'。指定的方法 od不支持。 它应该是$ items.Name例如? – 2012-03-29 06:48:37
对不起,你的代码太忠实了。我刚刚使用管道重写了它,因为我认为'foreach(){}'通常不是PowerShell中非常习惯的解决方案。 – Joey 2012-03-29 07:05:19
不,'$ items'是一个数组(它在实际循环之前被反转)。 'ForEach-Object'允许通过'$ _'访问当前的管道元素(通常在涉及脚本块的管道中)。 – Joey 2012-03-29 07:07:08