由于不同的应用程序需要不同的文件名,我一直试图将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" }