将文件复制到所有子目录中同一目录中的不同名称

由于不同的应用程序需要不同的文件名,我一直试图将Folder.jpg复制到所有子文件夹中的cover.jpg,但无法让我的shell脚本正常工作。

get-childItem -recurse | Where {$_.extension -eq "jpg"} | copy-item Folder.jpg cover.jpg 

没有错误,但没有发生任何事情。

感谢这里的专家给予的帮助。

recursionsearchFolder.jpg最简单,更改为该文件夹,复制并获取下一个。

 # Change to base folder Push-Location "Q:\Test\2017" Get-ChildItem Folder.jpg -Recurse | ForEach-Object { Set-Location $_.DirectoryName Copy-Item .\Folder.jpg .\Cover.jpg } Pop-Location 

 gci folder.jpg -r|copy -dest {$_.FullName -replace 'folder','cover'} 

@LotPings已经为你的任务显示了一个很好格式的PS脚本。 如果它是一个函数,会更好。

 function Copy-Covers ($location) { # Change to base folder Push-Location $location # Recursively copy all occurrences of folder.jpg under $location Get-ChildItem Folder.jpg -Recurse | ForEach-Object { Set-Location $_.DirectoryName Copy-Item .\Folder.jpg .\Cover.jpg } Pop-Location } 

对于一次性任务,你可以经常使用单线。 在这种情况下,它将如下所示(从要执行复制的基本文件夹执行):

 gci -R -filter folder.jpg | % {copy $_ "$($_.DirectoryName)\cover.jpg" }