我想编写一个脚本来搜索目录,让我们说C:\books
,然后在子目录中搜索特定扩展名的文件,让我们说{{1} } 例如。
然后,如果文件夹包含此类文件,我想将文件夹层次结构完整移动到新目录。因此,我们要说.mp3
包含C:\books\harry_potter\goblet
文件,在请求确认后会移至.mp3
。
我认为PowerShell cmdlet C:\audiobooks\harry_potter\goblet
是我用Get-ChildItem
进行管理的最佳选择,但我是PowerShell脚本的完整菜鸟。我真的很感激任何建议。
答案 0 :(得分:0)
这样的东西会在集合的根目录中完成:
(ls *.mp3 -recurse) | % { split-path $_ } | sort -u | % { cp $_ $_.Replace('c:\books', 'c:\audiobooks') }
我使用cp
代替mv
来测试它而不移动文件。说明:ls
返回所有文件,%
然后获取其父项,sort -u
删除父项之间的重复项,最后一个命令将每个父项移动到新位置。