我有一堆文件,我喜欢copy
或duplicate
在同一个folder
中,但在复制期间重命名filename
部分...
实施例。 复制这些文件
¸Ó¸®30_³²_0.pal
¸Ó¸®30_³²_1.pal
¸Ó¸®30_³²_2.pal
¸Ó¸®30_³²_3.pal
¸Ó¸®30_³²_10.pal
¸Ó¸®30_³²_11.pal
¸Ó¸®30_³²_12.pal
但必须重命名为这些
¸Ó¸®31_³²_0.pal
¸Ó¸®31_³²_1.pal
¸Ó¸®31_³²_2.pal
¸Ó¸®31_³²_3.pal
¸Ó¸®31_³²_10.pal
¸Ó¸®31_³²_11.pal
¸Ó¸®31_³²_12.pal
此外,我想要input
copy
以及它将被重命名为...
input
到files
然后copy
31 _ 或 41_ <我只需要input
30 _ / strong>适用于copied
files
..
如果input
无法使用..我可以使用硬编码值...
更新
我找到了一个复制和重命名文件的代码..
Get-ChildItem '*30_*.pal' -recurs | % {
$copyto = $_.FullName -replace "30_","41_"
Copy-Item $_.FullName $copyto
}
input
现在正在消失......而且我不知道该怎么做......
答案 0 :(得分:0)
如果你的get-childitem工作正常,这应该替换每个文件
Get-ChildItem '*30_*.pal' -Recurse |% {$_.Replace('30','31')}
答案 1 :(得分:0)
Ranadip Dutta的答案很好,但是如果第二组数字包含30,那么替换可能会出问题...例如,如果组中有更多文件而你有一个:
¸Ó¸®30_³²_30.pal
它将重命名为:
¸Ó¸®31_³²_31.pal
为了避免这种情况,请在替换中使用更多识别字符,以确保您要替换文件中正确位置的数字,如下所示:
Get-ChildItem '*30_*.pal' -Recurse |% {$_.Replace('®30','®31')}