将版本化文件复制到其他目录

时间:2017-05-11 12:35:27

标签: powershell

我想在目录文件example-file-5.0.0.0.jar中找到并将其重命名为另一个目录。我写过这个剧本:

Get-ChildItem -Path $directoryFrom | Where-Object { $_.Name -match "example-file-\d\.\d\.\d\.\d\.jar$" } | Copy-Item -Destination $directory\"example-file.jar -Recurse -Force

问题是,我在同一目录中有另一个名为example-file-5.0.0.0-debug.jar的文件,而是复制而不是example-file-5.0.0.0.jar文件。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

你遗失了别的东西。您的-match 正确

"example-file-5.0.0.0-debug.jar" -match "example-file-\d\.\d\.\d\.\d\.jar$"
# Output: False
"example-file-5.0.0.0.jar" -match "example-file-\d\.\d\.\d\.\d\.jar$"
# Output: True

但是,您的Copy-Item cmdlet在目标中有一个随机引用,并且错过了结束引号。我建议您使用Join-Path cmdlet,这样您就不必担心斜杠:

Copy-Item -Destination (Join-Path $directory "example-file.jar") -Force

注意:我还删除了-recurse参数,因为您要复制单个文件。