Я пытаюсь использовать powershell, чтобы разделить огромные файлы журналов на отдельные файлы, чтобы я мог их просматривать. Я нашел код в Интернете, чтобы начать работу, и я изменил его в соответствии со своими потребностями, теперь я просто его настраиваю. Проблема, которую я имею, - это то, что я хотел бы, чтобы сценарий был в отдельной папке, кроме файла журнала, но был создан разделенный файл в той же папке, что и файл журнала. В настоящее время он разбивает файлы журналов в той же папке, в которой находится скрипт. Я попытался сделать set-location(split-path $filename -parent -resolve)
, который меняет каталог на папку, в которой находится файл журнала, но все же выплевывает файлы разделенных журналов в папку, где находится скрипт. Любая помощь будет принята с благодарностью. Спасибо.разделяет файлы журналов в той же папке, что и файл журнала
#split test
param (
[string] $filename = $null
)
$sw = new-object System.Diagnostics.Stopwatch
$sw.Start()
$rootName = [io.path]::GetFileNameWithoutExtension($filename)
$ext = [io.path]::GetExtension($filename)
$linesperFile = 100000#100k
$filecount = 1
$reader = $null
Set-Location(split-path $filename -parent -resolve)
try{
$reader = [io.file]::OpenText($filename)
try{
"Creating file number $filecount"
$writer = [io.file]::CreateText("{0}-{1}{2}" -f ($rootName,$filecount.ToString("000"),$ext))
$filecount++
$linecount = 0
while($reader.EndOfStream -ne $true) {
"Reading $linesperFile"
while(($linecount -lt $linesperFile) -and ($reader.EndOfStream -ne $true)){
$writer.WriteLine($reader.ReadLine());
$linecount++
}
if($reader.EndOfStream -ne $true) {
"Closing file"
$writer.Dispose();
"Creating file number $filecount"
$writer = [io.file]::CreateText("{0}-{1}{2}" -f ($rootName,$filecount.ToString("000"),$ext))
$filecount++
$linecount = 0
}
}
} finally {
$writer.Dispose();
}
} finally {
$reader.Dispose();
}
$sw.Stop()
Write-Host "Split complete in " $sw.Elapsed.TotalSeconds "seconds"
См [мой ответ] (http://stackoverflow.com/a/32379304/4424236) на этот вопрос: [раздвоение текст файл в файлы меньшего размера на основе размера (окна)] (http://stackoverflow.com/questions/32360801/split-text-file-into-smaller-files-based-on-size-windows). – beatcracker