Script zusammenfassen oder verkleinern?
Gibt es eine Möglichkeit folgendes Skript kürzer zu fassen (ohne Übersichtlichkeit einzubußen)? Und eventuell noch eine Zeile in der die vorherige merged.txt gelöscht wird?
Mit freundlichen Grüßen
Thunderbirdop
If([int](get-date).DayofWeek -match '[1]'){$date = (Get-Date -date ((get-date).AddDays(-3)) -format dddd)}else{$date = (Get-Date -date ((get-date).AddDays(-1)) -format dddd)}
gci "D:\****\$date\1600\*.txt" | %{
[regex]::Replace((gc $_.Fullname | out-string),'(?sim)(^-{78}[\r\n]*$)(.*?)(^-{78})','$1' + "`t*****`r`n" + '$3')
"`r`n"*5
} | set-content "D:\****\$date\1600\merged.txt"
Start-Sleep -s 10
gci "D:\****\$date\1600\*.txt" | %{
[regex]::Replace((gc $_.Fullname | out-string),'(?sim)(^-{78}[\r\n]*$)(.*?)(^-{78})','$1' + "`t*****`r`n" + '$3')
"`r`n"*5
} | set-content "D:\****\$date\1600\merged.txt"
Start-Sleep -s 10
gci "D:\****\$date\1600\*.txt" | %{
[regex]::Replace((gc $_.Fullname | out-string),'(?sim)(^-{78}[\r\n]*$)(.*?)(^-{78})','$1' + "`t*****`r`n" + '$3')
"`r`n"*5
} | set-content "D:\****\$date\1600\merged.txt"
Start-Sleep -s 10
gci "D:\****\$date\1600\*.txt" | %{
[regex]::Replace((gc $_.Fullname | out-string),'(?sim)(^-{78}[\r\n]*$)(.*?)(^-{78})','$1' + "`t*****`r`n" + '$3')
"`r`n"*5
} | set-content "D:\****\$date\1600\merged.txt"
Start-Sleep -s 10
gci "D:\****\$date\1600\*.txt" | %{
[regex]::Replace((gc $_.Fullname | out-string),'(?sim)(^-{78}[\r\n]*$)(.*?)(^-{78})','$1' + "`t*****`r`n" + '$3')
"`r`n"*5
} | set-content "D:\****\$date\1600\merged.txt"
Start-Sleep -s 10
gci "D:\****\$date\1600\*.txt" | %{
[regex]::Replace((gc $_.Fullname | out-string),'(?sim)(^-{78}[\r\n]*$)(.*?)(^-{78})','$1' + "`t*****`r`n" + '$3')
"`r`n"*5
} | set-content "D:\****\$date\1600\merged.txt"
Start-Sleep -s 15
get-content "D:\****\$date\1600\merged.txt" | Out-Printer
get-content "D:\****\$date\1600\merged.txt" | Out-Printer
get-content "D:\****\$date\1600\merged.txt" | Out-Printer
get-content "D:\*****\$date\1600\merged.txt" | Out-Printer
get-content "D:\*****\$date\1600\merged.txt" | Out-Printer
get-content "D:\*****\$date\1600\merged.txt" | Out-Printer
Mit freundlichen Grüßen
Thunderbirdop
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 293791
Url: https://administrator.de/forum/script-zusammenfassen-oder-verkleinern-293791.html
Ausgedruckt am: 15.04.2025 um 07:04 Uhr
6 Kommentare
Neuester Kommentar

If([int](get-date).DayofWeek -match '[1]'){$date = (Get-Date -date ((get-date).AddDays(-3)) -format dddd)}else{$date = (Get-Date -date ((get-date).AddDays(-1)) -format dddd)}
$folder = "D:\****\$date\1600"
$filter = '*.txt'
$fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property @{IncludeSubdirectories = $false;NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'}
Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action {
$name = $Event.SourceEventArgs.Name
$fullpath = $Event.SourceEventArgs.FullPath
$timeStamp = $Event.TimeGenerated
Write-Host "Die Datei '$name' wurde um '$timeStamp' erstellt. Passe Log an und drucke." -f green
[regex]::Replace((gc $fullpath | out-string),'(?sim)(^-{78}[\r\n]*$)(.*?)(^-{78})','$1' + "`t*****`r`n" + '$3') + "`r`n"*5 | out-printer
remove-item $fullpath -Force
}
write-host "Warte auf neue Logs ..."
while($true){
sleep(2)
}

Ach so, weiß hier ja keiner ...
Dann geht das eher so:
Eine extra Datei erstellen ist hier ja eigentlich nicht nötigt, kannst du direkt an den Drucker schicken ...
A Beginner’s Introduction to Windows PowerShell
Und tschüss ...
Dann geht das eher so:
If([int](get-date).DayofWeek -match '[1]'){$date = (Get-Date -date ((get-date).AddDays(-3)) -format dddd)}else{$date = (Get-Date -date ((get-date).AddDays(-1)) -format dddd)}
$pfade = @(
"D:\Ordner1\$date\1600\*.txt",
"D:\Ordner2\$date\1600\*.txt",
"D:\Ordner3\$date\1600\*.txt",
"D:\Ordner4\$date\1600\*.txt",
"D:\Ordner5\$date\1600\*.txt",
"D:\Ordner6\$date\1600\*.txt"
)
$pfade | %{
gci $_ | %{
[regex]::Replace((gc $_.Fullname | out-string),'(?sim)(^-{78}[\r\n]*$)(.*?)(^-{78})','$1' + "`t*****`r`n" + '$3')
"`r`n"*5
} | out-printer
}
A Beginner’s Introduction to Windows PowerShell
Und tschüss ...

Ich frage mich immer bei euch cracks, ob ihr das einfach locker easy runterschreibt oder ob ihr auch paar mal kompilieren müsst. Haha

Zitat von @124909:
Ich frage mich immer bei euch cracks, ob ihr das einfach locker easy runterschreibt oder ob ihr auch paar mal kompilieren müsst. Haha
Kompilieren bei Powershell ?? Das macht der Interpreter(.NET) on the fly Ich frage mich immer bei euch cracks, ob ihr das einfach locker easy runterschreibt oder ob ihr auch paar mal kompilieren müsst. Haha
Wenn man lange genug damit arbeitet ist das wie eine Muttersprache die man fließend spricht. Da sieht man dann den Code schon bildlich vor sich, hackt das rein und nach max. zwei drei Tests und Schreibfehlerkorrekturen, lüppt dat. Alles eine Frage der Übung wie bei allem.