我们在文件管理器的顶层“客户”文件夹下有一个客户列表。客户文件夹下是实际的客户文件夹,一些文件夹的命名约定为“client_test”,其他文件夹的命名约定为“111_1111”。我需要扫描所有子文件夹,查找所有具有 *_[0-9] 的客户(如 111_1111 客户),如果 footer.jpg 的大小不超过 4903 字节,则用新的 footer.jpg 替换它。基本上,如果客户修改了原始页脚,我们希望保留它,但如果没有,我们希望用新的重新命名的页脚覆盖页脚。非常感谢您的帮助!
答案1
如果您根据需要修改路径,我认为这一点 PowerShell 就可以解决问题。首先测试一下,看看这是否会舍入您要替换的文件:
gci c:\Clients\*\footer.jpg |
?{($_.directory.name -match ''^\d+-\d+$') -and ($_.length -eq 4904)}
如果有效,请使用以下命令:
gci c:\Clients\*\footer.jpg |
?{($_.directory.name -match '^\d+-\d+$') -and ($_.length -eq 4904)} |
%{copy-item 'c:\NewArtwork\footer.jpg' "$($_.directory)\footer.jpg" -force}
- gci = 获取子项
- ? = 哪里对象
- % = ForEach-对象
基思