Büyük günlük dosyalarını ayrı dosyalara ayırmak için powershell kullanmaya çalışıyorum, böylece onları görüntüleyebilirim. Başlamak için çevrimiçi bir kod buldum ve şimdi ihtiyaçlarımı düzeltmek için değiştirdim. Sahip olduğum sorun, komut dosyasının log dosyasından ayrı bir klasörde olmasını, ancak bölünmüş dosyaların log dosyasıyla aynı klasörde oluşturulmasını istiyorum. Şu anda günlük dosyalarını betik içerisindeki aynı klasöre böler. set-location(split-path $filename -parent -resolve)
'u çalıştırmayı denedim; bu dizin, günlük dosyasının bulunduğu klasöre değiştirir ancak yine de bölünmüş günlük dosyalarını betiğin bulunduğu klasöre dağıtır. Herhangi bir yardım büyük takdir edilecektir Teşekkürler.Günlük dosyası ile aynı klasördeki bölme günlük dosyaları
#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"
bakınız [cevabım] (http://stackoverflow.com/a/32379304/4424236) bu soru için: [bölünmüş metin
Join-Path
ile mutlak bir yol oluşturun ve yerineCreateText()
o geçmesiboyutu (windows) temel alan daha küçük dosyalara dosya ekleyin (http://stackoverflow.com/questions/32360801/split-text-file-into-smaller-files-based-on-size-windows). – beatcracker