Skip to content

Instantly share code, notes, and snippets.

@eugrus
eugrus / Extract-Audio.ps1
Created September 19, 2025 08:14
wrapper for ffmpeg
param([Parameter(Mandatory=$true)][string]$InputFile)
if (-not (Test-Path $InputFile)) { Write-Error "No '$InputFile'"; exit 1 }
ffmpeg -i "$InputFile" -vn -b:a 64k $("$( [System.IO.Path]::ChangeExtension($InputFile, '.mp3') )")
@eugrus
eugrus / lines.ps1
Last active September 16, 2025 09:07
basically grep -ni or findstr /N /I in PowerShell
param (
[string]$Pattern,
[string]$Path
)
if (-not (Test-Path $Path)) {
Write-Error "File '$Path' not found."
exit 1
}
gc $env:USERPROFILE\.ssh\id_ed25519.pub | ssh $args[0] "cat >> .ssh/authorized_keys"
param (
[string]$Query
)
$apiKey = "" # https://console.cloud.google.com/apis/credentials
$cseId = "" # https://programmablesearchengine.google.com/
$results = @()
$encodedQuery = [System.Uri]::EscapeDataString($Query)
@eugrus
eugrus / Copy-AllStyles.ps1
Last active September 9, 2025 16:52
Copying Word styles between documents
#Requires -Version 5.1
<#
.SYNOPSIS
Копирует все стили из одного документа Word в другой.
.DESCRIPTION
Этот скрипт открывает два документа Word: документ-донор и целевой документ.
Затем он копирует все стили из донора в целевой документ, перезаписывая существующие стили с теми же именами.
Для работы скрипта требуется, чтобы на компьютере был установлен Microsoft Word.
.PARAMETER SourcePath
Обязательный. Укажите путь к документу Word, из которого нужно скопировать стили (донор).
@eugrus
eugrus / NoColor.ps1
Created September 3, 2025 11:56
remove highlights & shading from the active document in Word
$word = [Runtime.Interopservices.Marshal]::GetActiveObject("Word.Application")
$doc = $word.ActiveDocument
if ($doc) {
# Clear highlights & shading
foreach ($r in $doc.StoryRanges) {
do {
$r.HighlightColorIndex = [Microsoft.Office.Interop.Word.WdColorIndex]::wdNoHighlight
$r.Shading.BackgroundPatternColor = [Microsoft.Office.Interop.Word.WdColor]::wdColorAutomatic
$r = $r.NextStoryRange
} while ($r)
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Screen]::PrimaryScreen.Bounds
@eugrus
eugrus / ocrde.py
Last active August 29, 2025 15:37
from PIL import Image
import pytesseract
import sys
if len(sys.argv) < 2:
sys.exit(1)
image_path = sys.argv[1]
image = Image.open(image_path)
text = pytesseract.image_to_string(image, lang="deu")
@eugrus
eugrus / Vertragspunkte.ps1
Last active August 19, 2025 08:39
Konversion von manuellen Nummerierungsebenen in Listenebenen
function KillHeadLessWord {
$sessionId = [System.Diagnostics.Process]::GetCurrentProcess().SessionId
Get-Process -Name WINWORD -ErrorAction SilentlyContinue |
Where-Object { $_.MainWindowHandle -eq 0 -and $_.SessionId -eq $sessionId } |
Stop-Process -Force
}
function ProgressWindow {
Add-Type -AssemblyName System.Windows.Forms
$form = New-Object System.Windows.Forms.Form
@eugrus
eugrus / excel2json.py
Last active July 28, 2025 15:24
Platzhalter anhand einer Tabelle füllen
import pandas as pd
pd.read_excel('PH.xlsx').to_json('PH.json', orient='records', indent=4, force_ascii=False)