我有一个文件列表说...
T123_Product_1.jpg
T123_Product_2.jpg
T123_Product_3.jpg
T456_Product_1.jpg
T456_Product_2.jpg
T456_Product_3.jpg
等等等等大约另外900个文件
我需要做的是根据第一个下划线之前的字符创建一个文件夹,但由于有多个文件,因此不再重复。
因此,在上面的示例中,我只需要两个名为T123和T456的文件夹。
然后,我需要脚本将适当的文件放置在文件夹中。
我在此线程中找到了一些代码,但是它们并不能完全满足我的要求。
$Files = Get-ChildItem -Path 'C:\Info\AUGUST 2011\Checklists\' -Filter 'DET1__*'
$Files | ForEach-Object {
$FileFullName = $_.FullName
$TempFileName = "$($FileFullName).tmp"
$DestinationFileName = "$FileFullName\$($_.Name)"
Move-Item $FileFullName $TempFileName
New-Item -Path $FileFullName -ItemType Directory
Move-Item $TempFileName $DestinationFileName
}
有什么帮助吗?
这里最简单的方法是按第一部分对文件进行分组,然后将其成为目录名。在典型的PowerShell管道方式中,这非常简洁:
Get-ChildItem -File | # Get files
Group-Object { $_.Name -replace '_.*' } | # Group by part before first underscore
ForEach-Object {
# Create directory
$dir = New-Item -Type Directory -Name $_.Name
# Move files there
$_.Group | Move-Item -Destination $dir
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句