下面是一些文件的完整路径,这些文件具有我正在寻找的特定文件模式。这些文件并非都位于同一位置,但是,我想更改" .gen"到" .tmp"在短时间内保持" .gen"完整的。
D:\Example\CommonData\Settings\ConnectionSettings.config.gen
D:\Example\CommonData\Settings\FileExtensions.config.gen
D:\Example\WebApps\Website\Web.config.gen
D:\Example\Test\SCM\Config.Files\Some.Other.thing.config.gen
我想做什么:
D:\Example\CommonData\Settings\ConnectionSettings.config.gen
D:\Example\CommonData\Settings\ConnectionSettings.config.tmp
D:\Example\CommonData\Settings\FileExtensions.config.gen
D:\Example\CommonData\Settings\FileExtensions.config.tmp
D:\Example\WebApps\Website\Web.config.gen
D:\Example\WebApps\Website\Web.config.tmp
D:\Example\Test\SCM\Config.Files\Some.Other.thing.config.gen
D:\Example\Test\SCM\Config.Files\Some.Other.thing.config.tmp
我到目前为止已尝试过:
Get-ChildItem *.config.gen | ForEach {
$NewName = $_.Name -replace ".config.gen$", ".config.tmp"
Copy-Item $_ $NewName
}
我尝试使用xcopy
或robocopy
与Copy-Item
更轻松地做些什么?如果是这样,我将如何使用Copy-Item
以外的其他内容。
答案 0 :(得分:1)
由于您希望重命名的目标项Get-ChildItem
/ Copy-Item
是更好的方法。这样的事情应该有效:
Get-ChildItem *.config.gen -Recurse |
Copy-Item -Destination { Join-Path $_.Directory ($_.BaseName + '.tmp') }