【发布时间】:2012-08-02 12:29:37
【问题描述】:
我用
计算“我的图片”文件夹中的所有文件Get-ChildItem C:\pictures -force | Group-Object extension | Sort-Object count -descending | ft count,name -auto
然后我将我所有的 MTS 文件(视频)复制到一个单独的文件夹中
Get-ChildItem C:\pictures -force -recurse -include *.MTS | Copy-Item -Destination c:\video
这很好用。但是,如何在c:\video 中为每一年创建一个文件夹,然后复制相应的文件?
更新:
Shay 帮助我完成了这项工作,我现在拥有以下代码:
# Create a folder for each year and move the specified files to the corresponding folders
Get-ChildItem $fromFolder -Force |
Group-Object {$_.CreationTime.Year} | Foreach-Object {
# Testing to see if the folder exist
if(!(Test-Path $toFolder\$($_.Name))) {
$folder = New-Item -Path "$toFolder\$($_.Name)" Itemtype Directory -Force
echo "Created $toFolder\$($_.Name)"
} else {
echo "Folder $toFolder\$($_.Name) exist"
}
# Testing to see if the file exist in the target directory
if(!(Test-Path $_.group)) {
$_.group | Copy-Item -Destination $folder.FullName
echo "Copyied $_ to $folder"
} else {
echo "File exist"
}
}
它测试文件夹正常,但跳过文件上的所有Test-Path。
我是否以某种方式打破了循环?还是弄乱了管道?
【问题讨论】:
标签: powershell get-childitem copy-item