以下代码中把$inputFile和$outputFilePrefix 分别换成你的文件和需要分割后放到的文件夹;
# 定义要分割的文件路径和分割后文件的前缀
$inputFile = "D:\logheiping\Logs\CNGarage.log"
$outputFilePrefix = "D:\logheiping\Logs\splitlog"
$chunkSizeMB = 100 # 每个小文件的大小(单位:MB)
# 计算每个分块的大小(以字节为单位)
$chunkSizeBytes = $chunkSizeMB * 1MB
$buffer = New-Object byte[] $chunkSizeBytes
$fileCount = 1
# 读取大文件并分割成小文件
$stream = $null
try {
$stream = [System.IO.File]::OpenRead($inputFile)
while (($bytesRead = $stream.Read($buffer, 0, $buffer.Length)) -gt 0) {
$outputFilePath = Join-Path $outputFilePrefix ("{0:D3}.log" -f $fileCount)
$outputStream = $null
try {
$outputStream = [System.IO.File]::Create($outputFilePath)
$outputStream.Write($buffer, 0, $bytesRead)
}
finally {
if ($outputStream -ne $null) {
$outputStream.Close()
$outputStream.Dispose()
}
}
$fileCount++
}
}
finally {
if ($stream -ne $null) {
$stream.Close()
$stream.Dispose()
}
}
Write-Host "File has been split into $($fileCount - 1) chunks."
在你的PowerShell 中执行PowerShell.exe -ExecutionPolicy Bypass -File D:\logheiping\Logs\splitfile.ps1
等待执行完毕会打印“File has been split into (分割成了多少个文件) chunks.”