さまざまなサイズの24kテキストファイルを含む700MBのフォルダーがあります。行制限が10ラク行であるため、vbaを使用してExcelで処理できるように、それぞれが最大50MBのサイズの新しいフォルダーを作成したいと思います。
どんな助けでもありがたいです。
私もこれを行うことに興味があったので、これが私が使用するPowerShellコードです。これにより、メインフォルダーのすべてのファイルが取得され、10MBのサブフォルダーに移動されます。値と名前を必要に応じて自由に調整してください。
# Replace with your base folder's path
$baseFolder = "C:\Users\you\myHugeFolder"
# Replace with the desired value for the subfolders to create
$maxSubFolderSize = 10MB
# Get all files contained in your base folder (could use the -recurse switch if needed)
$allFiles = Get-ChildItem $baseFolder
# Setting the subfolders naming convention : a name and a suffix
$baseSubFolder = "SubFolder-"
[int]$index = 0
# Creating the first subfolder
$subFolder = "SubFolder-" + "$index"
New-Item -Path $subFolder -Type Directory -Force
# Now processing the files
foreach ($file in $allFiles)
{
# Evaluating the size of the current subfolder
$subFolderSize = ((Get-ChildItem $subFolder -Recurse | Measure-Object -Property Length -Sum -ErrorAction Stop).Sum / 1MB)
# If the current subfolder size is greater than the limit, create a new subfolder and begin to copy files in it
if([int]$subFolderSize -gt [int]$maxSubFolderSize/1MB)
{
$index++
$subFolder = $baseSubFolder + $index
New-Item -Path $subFolder -Type Directory -Force
Write-Verbose -Message "Created folder $subFolder"
Move-Item $file.FullName -Destination $subFolder
}
# If the current subfolder is not yet greater that the limit, continue copying files in it
else {
Move-Item $file.FullName -Destination $subFolder
}
}
お役に立てれば !